Resident data ends at 599c, program starts at 599c, file ends at 17a70 Starting analysis pass at address 599a End of analysis pass, low address = 599c, high address = 131c4 [Start of code] Main routine R0001, 0 locals CALL_VS R0002 -> Gef QUIT Routine R0002, 0 locals CALL_1N R0053 RTRUE Routine R0003, 4 locals SPLIT_WINDOW #01 SET_WINDOW #01 SET_CURSOR #01,#01 SET_TEXT_STYLE REVERSE LOADB #00,#21 -> L01 SUB L01,#1a -> L02 SUB L01,#0d -> L03 SUB L01,#01 -> -(SP) PULL Gef JL Gef,#00 [TRUE] L0002 L0001: PRINT_CHAR ' ' DEC Gef JZ Gef [FALSE] L0001 L0002: SET_CURSOR #01,#02 CALL_2N R0079 (G00) LOADB #00,#01 -> -(SP) AND (SP)+,#02 -> -(SP) JZ (SP)+ [FALSE] L0005 JG L01,#4c [FALSE] L0003 SET_CURSOR #01,L02 PRINT "Score: " PRINT_NUM G01 SET_CURSOR #01,L03 PRINT "Moves: " PRINT_NUM G02 L0003: JG L01,#3f [FALSE] L0004 JG L01,#4c [TRUE] L0004 SET_CURSOR #01,L03 PRINT_NUM G01 PRINT "/" PRINT_NUM G02 L0004: JUMP L0010 L0005: SET_CURSOR #01,L02 PRINT "Time: " MOD G01,#0c -> L00 JL L00,#0a [FALSE] L0006 PRINT " " L0006: JZ L00 [FALSE] L0007 STORE L00,#0c L0007: PRINT_NUM L00 PRINT ":" JL G02,#0a [FALSE] L0008 PRINT "0" L0008: PRINT_NUM G02 DIV G01,#0c -> -(SP) JG (SP)+,#00 [FALSE] L0009 PRINT " pm" JUMP L0010 L0009: PRINT " am" L0010: SET_CURSOR #01,#01 SET_TEXT_STYLE ROMAN SET_WINDOW #00 RTRUE Routine R0004, 7 locals CALL_1N R0050 L0001: STORE L03,#00 L0002: JL L03,#0a [FALSE] L0003 LOADB L01,L03 -> -(SP) STOREB #361d,L03,(SP)+ INC L03 JUMP L0002 L0003: STOREB L00,#00,#78 STOREB L01,#00,#40 CALL_2N R0205 (#0107) CALL_1N R0366 STORE Gef,#00 STORE Gec,L00 STOREB Gec,#01,#00 CALL_1N R0003 READ Gec,L01 -> Gef LOADB L01,#01 -> L02 JZ L02 [FALSE] L0004 CALL_VN R0205 (#0106,#0a) JUMP L0001 L0004: LOADW L01,#01 -> L04 JE L04,"o","oops" [FALSE] L0005 JUMP L0016 L0005: JE L04,"undo" [FALSE] L0012 LOADB #3421,#01 -> -(SP) JE (SP)+,#01 [FALSE] L0012 JE G07,#01 [FALSE] L0006 CALL_VN R0205 (#0106,#0b) JUMP L0001 L0006: JZ G2a [FALSE] L0007 CALL_VN R0205 (#0106,#06) JUMP L0001 L0007: JE G2a,#01 [FALSE] L0008 JUMP L0010 L0008: JE G6a,#01 [FALSE] L0009 CALL_VN R0205 (#0106,#0c) JUMP L0001 L0009: RESTORE_UNDO -> L03 JZ L03 [FALSE] L0011 L0010: CALL_VN R0205 (#0106,#07) L0011: JUMP L0001 L0012: SAVE_UNDO -> L03 STORE G6a,#00 STORE G2a,#02 JE L03,#ffff [FALSE] L0013 STORE G2a,#00 L0013: JZ L03 [FALSE] L0014 STORE G2a,#01 L0014: JE L03,#02 [FALSE] L0015 SET_TEXT_STYLE BOLDFACE CALL_2N R0079 (G00) PRINT " " SET_TEXT_STYLE ROMAN CALL_VN R0205 (#0106,#0d) STORE G6a,#01 JUMP L0001 L0015: RET L02 L0016: JZ G3e [FALSE] L0017 CALL_VN R0205 (#0106,#0e) JUMP L0001 L0017: JE L02,#01 [FALSE] L0018 CALL_VN R0205 (#0106,#0f) JUMP L0001 L0018: JG L02,#02 [FALSE] L0019 CALL_VN R0205 (#0106,#10) JUMP L0001 L0019: LOADW L01,#03 -> L05 LOADW L01,#04 -> L06 STORE L03,#00 L0020: JL L03,#0a [FALSE] L0021 LOADB #361d,L03 -> -(SP) STOREB L01,L03,(SP)+ INC L03 JUMP L0020 L0021: MUL #02,G3e -> -(SP) SUB (SP)+,#01 -> L04 STOREW L01,L04,L05 ADD L04,#01 -> -(SP) STOREW L01,(SP)+,L06 RET L02 Routine R0005, 10 locals JE G24,#01 [FALSE] L0003 STORE L05,#00 L0001: JL L05,#08 [FALSE] L0002 LOADW #3727,L05 -> -(SP) STOREW L00,L05,(SP)+ INC L05 JUMP L0001 L0002: STORE G24,#00 RTRUE L0003: JE G55,#01 [FALSE] L0006 STORE G55,#00 STORE L05,#00 L0004: JL L05,#40 [FALSE] L0005 LOADB #357b,L05 -> -(SP) STOREB #3421,L05,(SP)+ INC L05 JUMP L0004 L0005: NEW_LINE JUMP L0007 L0006: CALL_VN R0004 (#33a8,#3421) L0007: LOADB #3421,#01 -> G30 STORE G2f,#01 CALL_1N R0367 LOADB #3421,#01 -> G30 STORE G32,#01 STORE G17,G08 STORE G18,G00 STORE G69,#00 L0008: STORE G5c,#00 STORE G63,#00 STORE G60,#ffff L0009: STORE G2f,G32 CALL_1S R0038 -> G31 JE G31,#ffff [FALSE] L0010 STORE G57,#01 JUMP L0084 L0010: JE G31,"g" [FALSE] L0011 STORE G31,"again" L0011: JE G31,"again" [FALSE] L0016 JE G17,G08 [TRUE] L0012 PRINT "To repeat a command like "frog, jump", just say "again", not "frog, again". " JUMP L0006 L0012: LOADB #35bc,#01 -> -(SP) JZ (SP)+ [FALSE] L0013 PRINT "You can hardly repeat that. " JUMP L0006 L0013: STORE L05,#00 L0014: JL L05,#40 [FALSE] L0015 LOADB #35bc,L05 -> -(SP) STOREB #3421,L05,(SP)+ INC L05 JUMP L0014 L0015: JUMP L0007 L0016: JE G31,"again" [TRUE] L0018 STORE L05,#00 L0017: JL L05,#40 [FALSE] L0018 LOADB #3421,L05 -> -(SP) STOREB #35bc,L05,(SP)+ INC L05 JUMP L0017 L0018: JZ G69 [FALSE] L0023 CALL_VS R0049 (G17,#11) -> L05 JL L05,#00 [FALSE] L0019 STORE G69,G32 SUB #00,L05 -> L05 L0019: JE L05,#01 [FALSE] L0020 STOREW L00,#00,G19 STOREW L00,#01,G1e STOREW L00,#02,G1f RTRUE L0020: JZ L05 [TRUE] L0021 STORE G31,L05 DEC G2f DEC G32 JUMP L0022 L0021: STORE G2f,G32 CALL_1S R0037 -> G31 L0022: JUMP L0024 L0023: STORE G69,#00 L0024: JZ G31 [TRUE] L0025 LOADB G31,#06 -> -(SP) AND (SP)+,#01 -> -(SP) JZ (SP)+ [FALSE] L0040 L0025: STORE G2f,G32 CALL_VS R0010 (#06,#00,#00) -> L08 JE L08,#2710 [FALSE] L0026 JUMP L0007 L0026: JZ L08 [TRUE] L0027 STOREW L00,#00,#00 STOREW L00,#01,#01 STOREW L00,#02,L08 JUMP L0114 L0027: JE G17,G08 [FALSE] L0031 STORE L06,#02 L0028: JG L06,G30 [TRUE] L0030 CALL_1S R0037 -> L05 JE L05,"xcomma" [FALSE] L0029 JUMP L0032 L0029: INC L06 JUMP L0028 L0030: CALL_2S R0370 (G31) -> G31 JZ G31 [TRUE] L0031 JUMP L0040 L0031: STORE G57,#0c JUMP L0084 L0032: SUB G2f,#01 -> L06 JE L06,#01 [FALSE] L0033 PRINT "You can't begin with a comma. " JUMP L0006 L0033: STORE G2f,#01 STORE G4c,#01 STORE G62,#01 CALL_VS R0010 (G08,G18,#06) -> L08 STORE G62,#00 JE L08,#2710 [FALSE] L0034 JUMP L0007 L0034: JZ L08 [FALSE] L0035 PRINT "You seem to want to talk to someone, but I can't see whom. " JUMP L0006 L0035: TEST_ATTR L08,#00 [TRUE] L0036 TEST_ATTR L08,#16 [TRUE] L0036 PRINT "You can't talk to " CALL_2N R0077 (L08) PRINT ". " JUMP L0006 L0036: JE G2f,L06 [TRUE] L0037 PRINT "To talk to someone, try "someone, hello" or some such. " JUMP L0006 L0037: CALL_2N R0042 (L08) ADD L06,#01 -> G32 STORE G17,L08 STORE G18,L08 L0038: GET_PARENT G18 -> -(SP) JZ (SP)+ [TRUE] L0039 GET_PARENT G18 -> G18 JUMP L0038 L0039: JUMP L0009 L0040: LOADB G31,#06 -> -(SP) AND (SP)+,#02 -> -(SP) DIV (SP)+,#02 -> G26 JE G26,#01 [FALSE] L0041 JE G17,G08 [TRUE] L0041 STORE G57,#0c STORE G26,#00 JUMP L0084 L0041: LOADB G31,#07 -> -(SP) SUB #ff,(SP)+ -> L05 LOADW #00,#07 -> -(SP) LOADW (SP)+,L05 -> L01 LOADB L01,#00 -> -(SP) SUB (SP)+,#01 -> L03 STORE G47,"it" STORE G48,G49 STORE G57,#01 STORE G58,G57 STORE L02,#00 L0042: JG L02,L03 [TRUE] L0084 MUL L02,#08 -> -(SP) ADD L01,#01 -> -(SP) ADD (SP)+,(SP)+ -> L04 STORE G52,#00 STORE G3c,#00 STORE G39,#00 LOADB L04,#00 -> G3a STORE G3b,#00 STORE G20,#00 STORE G21,#00 STOREW #3482,#00,#00 STORE G36,#00 STORE G59,#01 LOADB L04,#07 -> G60 ADD G32,#01 -> G2f STORE G5d,#ffff STORE G4d,#00 STORE L05,#00 STORE L09,#00 STORE G37,#01 L0043: JG G37,#06 [TRUE] L0052 STORE G63,#00 LOADB L04,G37 -> L07 JE L07,#02 [FALSE] L0044 INC L09 L0044: JL L07,#b4 [FALSE] L0045 INC L05 L0045: JE L07,#04,#05 [FALSE] L0051 JE L05,#01 [FALSE] L0051 INC G37 L0046: JG G37,#06 [TRUE] L0047 LOADB L04,G37 -> -(SP) JL (SP)+,#b4 [TRUE] L0047 INC G37 JUMP L0046 L0047: SUB G37,#01 -> -(SP) LOADB L04,(SP)+ -> L07 JL L07,#b4 [TRUE] L0051 CALL_2S R0035 (L07) -> L06 L0048: JG G2f,G30 [TRUE] L0051 CALL_1S R0037 -> -(SP) JE (SP)+,L06 [FALSE] L0050 CALL_VS R0010 (G18,G17,L07) -> L08 JE L08,#2710 [FALSE] L0049 JUMP L0007 L0049: JL L08,#02 [TRUE] L0050 STORE G5d,L08 L0050: JUMP L0048 L0051: INC G37 JUMP L0043 L0052: STORE G68,#00 JE L09,#01 [FALSE] L0053 JE G3a,#01 [FALSE] L0053 JE G60,#01 [FALSE] L0053 STORE G68,#01 L0053: STORE G52,#00 STORE G3c,#00 STORE G39,#00 STORE G3b,#00 STORE G20,#00 STORE G21,#00 STOREW #3482,#00,#00 STORE G59,#01 LOADB L04,#07 -> G60 ADD G32,#01 -> G2f STORE G37,#01 L0054: JG G37,#06 [TRUE] L0080 STOREW #35fd,G37,#00 STORE G63,#00 LOADB L04,G37 -> L07 ADD G37,#01 -> L09 STORE G4c,#08 JG L09,#06 [TRUE] L0055 LOADB L04,L09 -> G4c L0055: JZ G4c [FALSE] L0057 STORE L09,G39 JG L07,#07 [TRUE] L0056 INC L09 L0056: JL L09,G3a [TRUE] L0057 STORE G4c,#08 L0057: JG L07,#b4 [FALSE] L0061 ADD #2710,L07 -> -(SP) STOREW #35fd,G37,(SP)+ JG G2f,G30 [FALSE] L0059 JZ G3c [FALSE] L0058 JL G39,G3a [FALSE] L0058 STORE G3c,G37 STORE G3d,L07 L0058: JZ G3c [FALSE] L0059 JUMP L0080 L0059: JG G2f,G30 [TRUE] L0060 CALL_1S R0034 -> -(SP) JE L07,(SP)+ [TRUE] L0060 JUMP L0080 L0060: JUMP L0079 L0061: JE G39,G3a [FALSE] L0075 JG G2f,G30 [TRUE] L0065 CALL_1S R0037 -> L08 JE L08,"then","xcomma" [FALSE] L0062 STORE G55,#01 SUB G2f,#01 -> G56 JUMP L0065 L0062: STORE L09,#00 L0063: JL L09,#08 [FALSE] L0064 LOADW #35fd,L09 -> -(SP) STOREW #360d,L09,(SP)+ INC L09 JUMP L0063 L0064: STORE G38,G37 STORE G59,#02 JUMP L0080 L0065: JL G39,#01 [TRUE] L0066 LOADW L00,#02 -> -(SP) JZ (SP)+ [FALSE] L0066 LOADW L00,#03 -> -(SP) CALL_2S R0012 ((SP)+) -> L08 JZ L08 [TRUE] L0066 STORE G59,L08 JUMP L0080 L0066: JL G39,#02 [TRUE] L0067 LOADW L00,#03 -> -(SP) JZ (SP)+ [FALSE] L0067 LOADW L00,#02 -> -(SP) CALL_2S R0012 ((SP)+) -> L08 JZ L08 [TRUE] L0067 STORE G59,L08 JUMP L0080 L0067: JE G68,#02 [FALSE] L0068 LOADW L00,#02 -> -(SP) JE (SP)+,G17 [FALSE] L0068 STORE G57,#11 JUMP L0084 L0068: JZ G3c [TRUE] L0069 PRINT "(" CALL_VN R0016 (G3c,#01) PRINT ") " L0069: STOREW L00,#01,G3a LOADB L04,#07 -> -(SP) STOREW L00,#00,(SP)+ JG G39,#00 [FALSE] L0070 LOADW L00,#02 -> -(SP) JL (SP)+,#02 [TRUE] L0070 LOADW L00,#02 -> -(SP) CALL_2N R0042 ((SP)+) L0070: STORE G3e,#00 JZ G52 [TRUE] L0073 JE G17,G08 [FALSE] L0073 STORE G24,#01 STORE L05,#00 L0071: JL L05,#08 [FALSE] L0072 LOADW L00,L05 -> -(SP) STOREW #3727,L05,(SP)+ INC L05 JUMP L0071 L0072: STOREW L00,#00,#01 STOREW L00,#01,#01 STOREW L00,#02,G52 PRINT "(first taking " CALL_2N R0077 (G52) PRINT ") " L0073: JE G55,#01 [FALSE] L0074 STORE G2f,G56 JUMP L0114 L0074: RTRUE L0075: JE L07,#06 [FALSE] L0077 JE G60,#02,#03,#04 [TRUE] L0076 JE G60,#05 [FALSE] L0077 L0076: STORE G62,#01 L0077: CALL_VS R0009 (L00,L07) -> L08 STORE G62,#00 JE L08,#2710 [FALSE] L0078 JUMP L0007 L0078: JZ L08 [FALSE] L0079 JUMP L0080 L0079: INC G37 JUMP L0054 L0080: JG G59,G57 [FALSE] L0081 STORE G57,G59 L0081: JE G59,#12 [TRUE] L0082 JG G59,G58 [FALSE] L0082 STORE G58,G59 L0082: JE G68,#02 [FALSE] L0083 JE G59,#11 [FALSE] L0083 JUMP L0084 L0083: INC L02 JUMP L0042 L0084: STORE G59,G57 JE G17,G08 [TRUE] L0087 JG G69,#00 [FALSE] L0085 STORE G32,G69 JUMP L0008 L0085: STORE G2f,G32 CALL_1S R0037 -> G20 JE G20,"xcomma" [FALSE] L0086 CALL_1S R0037 -> G20 INC G32 L0086: CALL_2S R0041 (G32) -> G21 STOREW L00,#00,#0108 STOREW L00,#01,#02 STOREW L00,#02,#01 STORE G1c,G20 STOREW L00,#03,G17 STORE G28,G32 SUB G30,G28 -> -(SP) ADD (SP)+,#01 -> G29 RTRUE L0087: CALL_2S R0372 (G59) -> -(SP) JZ (SP)+ [TRUE] L0088 JUMP L0006 L0088: JE G59,#01 [FALSE] L0089 PRINT "I didn't understand that sentence. " STORE G3e,#01 L0089: JE G59,#02 [FALSE] L0092 PRINT "I only understood you as far as wanting to " STORE L09,#00 L0090: JL L09,#08 [FALSE] L0091 LOADW #360d,L09 -> -(SP) STOREW #35fd,L09,(SP)+ INC L09 JUMP L0090 L0091: STORE G37,G38 CALL_VN R0016 (#00,#01) PRINT ". " L0092: JE G59,#03 [FALSE] L0093 PRINT "I didn't understand that number. " L0093: JE G59,#04 [FALSE] L0094 PRINT "You can't see any such thing. " STORE G3e,G3f L0094: JE G59,#05 [FALSE] L0095 PRINT "You seem to have said too little! " L0095: JE G59,#06 [FALSE] L0096 PRINT "You aren't holding that! " STORE G3e,G3f L0096: JE G59,#07 [FALSE] L0097 PRINT "You can't use multiple objects with that verb. " L0097: JE G59,#08 [FALSE] L0098 PRINT "You can only use multiple objects once on a line. " L0098: JE G59,#09 [FALSE] L0099 PRINT "I'm not sure what "" PRINT_ADDR G47 PRINT "" refers to. " L0099: JE G59,#0a [FALSE] L0100 PRINT "You excepted something not included anyway! " L0100: JE G59,#0b [FALSE] L0101 PRINT "You can only do that to something animate. " L0101: JE G59,#0c [FALSE] L0102 PRINT "That's not a verb I recognise. " L0102: JE G59,#0d [FALSE] L0103 PRINT "That's not something you need to refer to in the course of this game. " L0103: JE G59,#0e [FALSE] L0104 PRINT "You can't see "" PRINT_ADDR G47 PRINT "" (" CALL_2N R0077 (G48) PRINT ") at the moment. " L0104: JE G59,#0f [FALSE] L0105 PRINT "I didn't understand the way that finished. " L0105: JE G59,#10 [FALSE] L0110 JZ G35 [FALSE] L0106 PRINT "None" JUMP L0107 L0106: PRINT "Only " CALL_2N R0084 (G35) L0107: PRINT " of those " JE G35,#01 [FALSE] L0108 PRINT "is" JUMP L0109 L0108: PRINT "are" L0109: PRINT " available. " L0110: JE G59,#11 [FALSE] L0112 JE G34,#64 [FALSE] L0111 PRINT "Nothing to do! " JUMP L0112 L0111: PRINT "There are none at all available! " L0112: JE G59,#12 [FALSE] L0113 STORE G65,#03 CALL_1S G64 -> -(SP) JE (SP)+,#ffff [FALSE] L0113 STORE G57,G58 JUMP L0084 L0113: JUMP L0006 L0114: JG G2f,G30 [TRUE] RTRUE CALL_1S R0037 -> L05 JE L05,"then" [TRUE] L0115 JE L05,"xcomma" [FALSE] L0133 L0115: JG G2f,G30 [FALSE] L0116 LOADB #357b,#01 -> -(SP) SUB (SP)+,#01 -> -(SP) STOREB #357b,#01,(SP)+ STORE G55,#00 RTRUE L0116: JE G17,G08 [FALSE] L0117 STORE L06,#00 JUMP L0118 L0117: SUB G32,#01 -> L06 L0118: ADD L06,#01 -> G5a SUB G2f,#02 -> G5b CALL_1S R0037 -> L05 JE L05,"again","g" [FALSE] L0127 STORE L05,#00 L0119: JL L05,L06 [FALSE] L0120 MUL #02,L05 -> -(SP) ADD (SP)+,#01 -> -(SP) LOADW #3421,(SP)+ -> -(SP) MUL #02,L05 -> -(SP) ADD (SP)+,#01 -> -(SP) STOREW #357b,(SP)+,(SP)+ MUL #02,L05 -> -(SP) ADD (SP)+,#02 -> -(SP) LOADW #3421,(SP)+ -> -(SP) MUL #02,L05 -> -(SP) ADD (SP)+,#02 -> -(SP) STOREW #357b,(SP)+,(SP)+ INC L05 JUMP L0119 L0120: STORE L05,G5a JUMP L0122 L0121: INC L05 INC L06 L0122: JG L05,G5b [TRUE] L0123 MUL #02,L05 -> -(SP) LOADW #3421,(SP)+ -> -(SP) MUL #02,L06 -> -(SP) ADD #02,(SP)+ -> -(SP) STOREW #357b,(SP)+,(SP)+ MUL #02,L05 -> -(SP) SUB (SP)+,#01 -> -(SP) LOADW #3421,(SP)+ -> -(SP) MUL #02,L06 -> -(SP) ADD #01,(SP)+ -> -(SP) STOREW #357b,(SP)+,(SP)+ JUMP L0121 L0123: STORE L05,G2f JUMP L0125 L0124: INC L05 INC L06 L0125: JG L05,G30 [TRUE] L0126 MUL #02,L05 -> -(SP) LOADW #3421,(SP)+ -> -(SP) MUL #02,L06 -> -(SP) ADD #02,(SP)+ -> -(SP) STOREW #357b,(SP)+,(SP)+ MUL #02,L05 -> -(SP) SUB (SP)+,#01 -> -(SP) LOADW #3421,(SP)+ -> -(SP) MUL #02,L06 -> -(SP) ADD #01,(SP)+ -> -(SP) STOREW #357b,(SP)+,(SP)+ JUMP L0124 L0126: STOREB #357b,#01,L06 STORE G55,#01 RTRUE L0127: DEC G2f STORE L05,#00 L0128: JL L05,L06 [FALSE] L0129 MUL #02,L05 -> -(SP) ADD (SP)+,#01 -> -(SP) LOADW #3421,(SP)+ -> -(SP) MUL #02,L05 -> -(SP) ADD (SP)+,#01 -> -(SP) STOREW #357b,(SP)+,(SP)+ MUL #02,L05 -> -(SP) ADD (SP)+,#02 -> -(SP) LOADW #3421,(SP)+ -> -(SP) MUL #02,L05 -> -(SP) ADD (SP)+,#02 -> -(SP) STOREW #357b,(SP)+,(SP)+ INC L05 JUMP L0128 L0129: STORE L05,G2f JUMP L0131 L0130: INC L05 INC L06 L0131: JG L05,G30 [TRUE] L0132 MUL #02,L05 -> -(SP) LOADW #3421,(SP)+ -> -(SP) MUL #02,L06 -> -(SP) ADD #02,(SP)+ -> -(SP) STOREW #357b,(SP)+,(SP)+ MUL #02,L05 -> -(SP) SUB (SP)+,#01 -> -(SP) LOADW #3421,(SP)+ -> -(SP) MUL #02,L06 -> -(SP) ADD #01,(SP)+ -> -(SP) STOREW #357b,(SP)+,(SP)+ JUMP L0130 L0132: STOREB #357b,#01,L06 STORE G55,#01 RTRUE L0133: STORE G57,#02 JUMP L0084 Routine R0006, 1 local JE L00,"one" [FALSE] L0001 RTRUE L0001: JE L00,"two" [FALSE] L0002 RET #02 L0002: JE L00,"three" [FALSE] L0003 RET #03 L0003: JE L00,"four" [FALSE] L0004 RET #04 L0004: JE L00,"five" [FALSE] L0005 RET #05 L0005: JE L00,"six" [FALSE] L0006 RET #06 L0006: JE L00,"seven" [FALSE] L0007 RET #07 L0007: JE L00,"eight" [FALSE] L0008 RET #08 L0008: JE L00,"nine" [FALSE] L0009 RET #09 L0009: JE L00,"ten" [FALSE] L0010 RET #0a L0010: JE L00,"eleven" [FALSE] L0011 RET #0b L0011: JE L00,"twelve" [FALSE] L0012 RET #0c L0012: JE L00,"thirteen" [FALSE] L0013 RET #0d L0013: JE L00,"fourteen" [FALSE] L0014 RET #0e L0014: JE L00,"fifteen" [FALSE] L0015 RET #0f L0015: JE L00,"sixteen" [FALSE] L0016 RET #10 L0016: JE L00,"seventeen" [FALSE] L0017 RET #11 L0017: JE L00,"eighteen" [FALSE] L0018 RET #12 L0018: JE L00,"nineteen" [FALSE] L0019 RET #13 L0019: JE L00,"twenty" [FALSE] L0020 RET #14 L0020: RFALSE Routine R0007, 4 locals STORE G4d,#00 STORE G4e,#00 STORE G4f,#00 STORE G50,#00 STORE L02,#01 L0001: JE L02,#01 [FALSE] L0017 CALL_1S R0037 -> L01 STORE L02,#00 JE L01,"the" [FALSE] L0002 STORE L02,#01 L0002: JE L01,"a","an","any" [TRUE] L0003 JE L01,"either","anything" [FALSE] L0004 L0003: STORE G4d,#01 STORE L02,#01 L0004: JE L01,"another",S065 OR "other" [FALSE] L0005 STORE G4d,#01 STORE L02,#01 OR G4e,#01 -> G4e L0005: JE L01,"my","this","these" [FALSE] L0006 STORE G4d,#01 STORE L02,#01 OR G4e,#02 -> G4e L0006: JE L01,"that","those" [FALSE] L0007 STORE G4d,#01 STORE L02,#01 OR G4e,#04 -> G4e L0007: JE L01,"its" [FALSE] L0008 STORE G4d,#01 STORE L02,#01 OR G4e,#10 -> G4e L0008: JE L01,"his","your" [FALSE] L0009 STORE G4d,#01 STORE L02,#01 OR G4e,#20 -> G4e L0009: JE L01,"lit","lighted" [FALSE] L0010 STORE G4d,#01 STORE L02,#01 OR G4e,#40 -> G4e L0010: JE L01,"unlit" [FALSE] L0011 STORE G4d,#01 STORE L02,#01 OR G4e,#80 -> G4e L0011: JE L01,"all","each","every" [TRUE] L0012 JE L01,"everythin" [FALSE] L0014 L0012: STORE G4d,#01 STORE L02,#01 STORE G4f,#64 JE G68,#01 [FALSE] L0013 STORE G68,#02 L0013: OR G4e,#08 -> G4e L0014: JE G51,#01 [FALSE] L0015 CALL_2S R0006 (L01) -> L03 JG L03,#01 [FALSE] L0015 STORE G50,#01 STORE G4d,#01 STORE L02,#01 STORE G4f,L03 OR G4e,#08 -> G4e L0015: JE L02,#01 [FALSE] L0016 CALL_1S R0037 -> -(SP) JE (SP)+,"of" [TRUE] L0016 DEC G2f L0016: JUMP L0001 L0017: DEC G2f JG G4f,#00 [FALSE] L0019 JL L00,#02 [TRUE] L0018 JG L00,#05 [FALSE] L0019 L0018: RET #07 L0019: RFALSE Routine R0008, 1 local TEST_ATTR L00,#00 [TRUE] RTRUE TEST_ATTR L00,#16 [FALSE] RFALSE JE G60,#03,#02,#05 [TRUE] RTRUE JE G60,#04 [TRUE] RTRUE RFALSE Routine R0009, 11 locals STORE L0a,#00 STORE L07,#01 STORE G61,#00 L0001: CALL_1S R0037 -> L03 DEC G2f JE L03,"it","them" [FALSE] L0002 STORE G47,L03 STORE G48,G49 JZ G49 [FALSE] L0002 STORE G59,#09 RFALSE L0002: JE L03,"him" [FALSE] L0003 STORE G47,L03 STORE G48,G4a JZ G4a [FALSE] L0003 STORE G59,#09 RFALSE L0003: JE L03,"her" [FALSE] L0004 STORE G47,L03 STORE G48,G4b JZ G4b [FALSE] L0004 STORE G59,#09 RFALSE L0004: JE L03,S023 OR "me","myself","self" [FALSE] L0005 STORE G47,L03 STORE G48,G08 L0005: JE L01,#07 [FALSE] L0009 CALL_2S R0041 (G2f) -> L02 JE L02,#fc18 [TRUE] L0008 JZ G3b [FALSE] L0006 STORE G1c,L02 JUMP L0007 L0006: STORE G1d,L02 L0007: STORE G21,L02 INC G3b L0008: CALL_1S R0037 -> G20 STORE L08,#01 JUMP L0048 L0009: JE L01,#08 [FALSE] L0013 PUSH G2f INC G2f CALL_2S R0041 ((SP)+) -> L02 JE L02,#fc18 [FALSE] L0010 STORE G59,#03 RFALSE L0010: PUSH G3b INC G3b JZ (SP)+ [FALSE] L0011 STORE G1c,L02 JUMP L0012 L0011: STORE G1d,L02 L0012: STORE L08,#01 JUMP L0048 L0013: JL L01,#30 [TRUE] L0019 JL L01,#50 [FALSE] L0019 SUB L01,#30 -> -(SP) LOADW #4004,(SP)+ -> -(SP) CALL_1S (SP)+ -> L02 JL L02,#00 [TRUE] RFALSE JZ L02 [FALSE] L0014 DEC G3a RTRUE L0014: JE L02,#01 [FALSE] L0017 JZ G3b [FALSE] L0015 STORE G1c,G22 JUMP L0016 L0015: STORE G1d,G22 L0016: INC G3b L0017: JE L02,#2710 [FALSE] L0018 RET L02 L0018: STORE L08,L02 JUMP L0048 L0019: JL L01,#50 [TRUE] L0021 JL L01,#80 [FALSE] L0021 SUB L01,#50 -> -(SP) LOADW #4004,(SP)+ -> G63 STORE G65,#01 CALL_1S G63 -> L02 JE L02,#01 [FALSE] L0020 STORE L01,#02 JUMP L0021 L0020: STORE L01,#00 L0021: STORE G5c,#00 JL L01,#10 [TRUE] L0022 STORE G5c,L01 STORE L01,#00 L0022: STORE G51,#01 STORE L09,G2f L0023: CALL_2S R0007 (L01) -> L02 JZ L02 [TRUE] L0024 STORE G59,L02 RFALSE L0024: STORE G3e,G2f JE L01,#01 [TRUE] L0036 LOADW #3482,#00 -> L04 CALL_VS R0010 (G18,G17,L01) -> L02 JE L02,#2710 [FALSE] L0025 RET L02 L0025: JZ L02 [FALSE] L0026 CALL_1S R0017 -> G59 JUMP L0051 L0026: JE L02,#01 [FALSE] L0032 JZ L0a [FALSE] L0027 STORE L0a,#01 JUMP L0031 L0027: LOADW #3482,#00 -> L06 STOREW #3482,#00,L04 ADD L04,#01 -> L05 L0028: JG L05,L06 [TRUE] L0031 JE L07,#01 [FALSE] L0029 LOADW #3482,L05 -> -(SP) CALL_2N R0018 ((SP)+) JUMP L0030 L0029: LOADW #3482,L05 -> -(SP) CALL_2N R0019 ((SP)+) L0030: INC L05 JUMP L0028 L0031: JUMP L0036 L0032: JE L01,#06 [FALSE] L0033 CALL_2S R0008 (L02) -> -(SP) JZ (SP)+ [FALSE] L0033 STORE G59,#0b JUMP L0051 L0033: JZ L0a [FALSE] L0034 STORE L08,L02 JUMP L0036 L0034: JE L07,#01 [FALSE] L0035 CALL_2N R0018 (L02) JUMP L0036 L0035: CALL_2N R0019 (L02) L0036: JE L01,#01 [FALSE] L0041 CALL_VS R0010 (G17,G18,L01) -> L02 JE L02,#2710 [FALSE] L0037 RET L02 L0037: JZ L02 [FALSE] L0038 CALL_1S R0017 -> G59 RET L02 L0038: GET_PARENT L02 -> L03 JE L03,G17 [TRUE] L0040 JE G24,#01 [FALSE] L0039 STORE G3f,G3e STORE G59,#06 JUMP L0051 L0039: STORE G52,L02 L0040: STORE L08,L02 L0041: ADD G3e,G42 -> G2f CALL_1S R0037 -> L03 JE L03,"and","but","except" [TRUE] L0042 JE L03,"xcomma" [FALSE] L0047 L0042: JL L01,#02 [TRUE] L0043 JL L01,#06 [TRUE] L0044 L0043: STORE G59,#07 JUMP L0051 L0044: JE L03,"but","except" [FALSE] L0045 SUB #01,L07 -> L07 L0045: JZ L0a [FALSE] L0046 STOREW #3482,#00,#01 STOREW #3482,#01,L08 STORE L0a,#01 L0046: STORE G61,#01 STORE G3c,#00 JUMP L0001 L0047: DEC G2f L0048: JE L0a,#01 [FALSE] L0049 STORE L08,#00 STORE G36,L01 JUMP L0050 L0049: JE G4d,#01 [FALSE] L0050 AND G4e,#08 -> -(SP) JZ (SP)+ [TRUE] L0050 JL G4f,#64 [FALSE] L0050 JG G4f,#01 [FALSE] L0050 STORE G35,#01 STORE G34,G4f STORE G59,#10 JUMP L0051 L0050: ADD G39,#02 -> -(SP) STOREW L00,(SP)+,L08 INC G39 STOREW #35fd,G37,L08 RTRUE L0051: JE G51,#01 [FALSE] L0052 JE G50,#01 [FALSE] L0052 STORE G51,#00 STORE G2f,L09 JUMP L0023 L0052: RFALSE Routine R0010, 11 locals STORE G42,#00 STORE G40,#00 STORE G43,G2f STORE G5e,#00 CALL_VN R0023 (L00,L01,L02) ADD G43,G42 -> G2f JZ G40 [FALSE] L0001 INC G2f RFALSE L0001: JG G43,G30 [TRUE] L0004 JE G40,#01 [FALSE] L0002 LOADW #3627,#00 -> L04 RET L04 L0002: JG G2f,G30 [TRUE] L0004 CALL_1S R0037 -> L04 DEC G2f JE L04,"and","xcomma","then" [TRUE] L0004 JE L04,"but","except" [TRUE] L0004 JE G4c,#08 [TRUE] RFALSE JG G4c,#08 [FALSE] L0004 CALL_1S R0034 -> -(SP) JE G4c,(SP)+ [TRUE] L0003 DEC G2f RFALSE L0003: DEC G2f L0004: STORE G41,#00 JE G40,#01 [FALSE] L0005 LOADW #3627,#00 -> L04 L0005: JG G40,#01 [FALSE] L0006 CALL_2S R0011 (L02) -> L04 JE L04,#ffff [TRUE] RFALSE JE L04,#01 [TRUE] RTRUE L0006: JZ L04 [TRUE] L0009 JE G61,#01 [FALSE] L0007 RET L04 L0007: JZ G3c [FALSE] L0008 STORE G3c,G37 L0008: STOREW #35fd,G37,L04 RET L04 L0009: JG G43,G30 [FALSE] L0010 JUMP L0032 L0010: JE L02,#06 [FALSE] L0011 PRINT "Who" JUMP L0012 L0011: PRINT "Which" L0012: PRINT " do you mean, " STORE L05,G41 STORE L0a,#00 STORE L04,#01 L0013: JG L04,G41 [TRUE] L0020 L0014: LOADW #36a7,L0a -> -(SP) JE (SP)+,L04 [TRUE] L0015 SUB #00,L04 -> -(SP) LOADW #36a7,L0a -> -(SP) JE (SP)+,(SP)+ [TRUE] L0015 INC L0a JUMP L0014 L0015: LOADW #3627,L0a -> L06 LOADW #36a7,L0a -> -(SP) JG (SP)+,#00 [FALSE] L0016 CALL_2N R0077 (L06) JUMP L0017 L0016: CALL_2N R0076 (L06) L0017: SUB L05,#01 -> -(SP) JL L04,(SP)+ [FALSE] L0018 PRINT ", " L0018: SUB L05,#01 -> -(SP) JE L04,(SP)+ [FALSE] L0019 PRINT " or " L0019: INC L04 JUMP L0013 L0020: PRINT "? " L0021: CALL_VS R0004 (#3502,#357b) -> L09 LOADW #357b,#01 -> L03 JE L03,"all","both","everythin" [TRUE] L0022 JE L03,"every","each" [FALSE] L0026 L0022: JL L02,#02 [TRUE] L0025 JG L02,#05 [TRUE] L0025 LOADW #3482,#00 -> L07 STORE L04,#00 L0023: JL L04,G40 [FALSE] L0024 ADD L07,L04 -> -(SP) JL (SP)+,#3f [FALSE] L0024 LOADW #3627,L04 -> L06 ADD L04,#01 -> -(SP) ADD (SP)+,L07 -> -(SP) STOREW #3482,(SP)+,L06 INC L04 JUMP L0023 L0024: ADD L04,L07 -> -(SP) STOREW #3482,#00,(SP)+ RTRUE L0025: PRINT "Sorry, you can only have one item here. Which one exactly? " JUMP L0021 L0026: LOADB L03,#06 -> L05 AND L05,#01 -> -(SP) JE #00,(SP)+ [TRUE] L0027 CALL_VN R0044 (#33a8,#3502) CALL_VN R0044 (#3421,#357b) RET #2710 L0027: LOADB #3421,#01 -> L08 ADD L09,L08 -> -(SP) STOREB #3421,#01,(SP)+ ADD L08,L09 -> L06 L0028: JG L06,G43 [FALSE] L0029 SUB L06,L09 -> -(SP) CALL_VN R0022 (L06,#3421,(SP)+) DEC L06 JUMP L0028 L0029: STORE L06,#01 L0030: JG L06,L09 [TRUE] L0031 ADD G43,L06 -> -(SP) SUB (SP)+,#01 -> -(SP) CALL_VN R0022 ((SP)+,#357b,L06) INC L06 JUMP L0030 L0031: RET #2710 L0032: JE L02,#06 [FALSE] L0033 PRINT "Whom" JUMP L0034 L0033: PRINT "What" L0034: PRINT " do you want" JE G17,G08 [TRUE] L0035 PRINT " " CALL_2N R0077 (G17) L0035: PRINT " to " CALL_VN R0016 (#00,#01) PRINT "? " CALL_VS R0004 (#3502,#357b) -> L09 LOADW #357b,#01 -> L03 LOADB L03,#06 -> L05 AND L05,#01 -> -(SP) JE #00,(SP)+ [TRUE] L0036 CALL_VN R0044 (#33a8,#3502) CALL_VN R0044 (#3421,#357b) RET #2710 L0036: LOADB #3421,#01 -> L08 JZ G3c [FALSE] L0039 STORE L06,#01 L0037: JG L06,L09 [TRUE] L0038 ADD L08,L06 -> -(SP) CALL_VN R0022 ((SP)+,#357b,L06) INC L06 JUMP L0037 L0038: JUMP L0045 L0039: SUB G37,G3c -> L05 STORE L06,#01 L0040: JG L06,L09 [TRUE] L0041 ADD L08,L06 -> -(SP) ADD (SP)+,L05 -> -(SP) CALL_VN R0022 ((SP)+,#357b,L06) INC L06 JUMP L0040 L0041: STORE L05,G3c L0042: JL L05,G37 [FALSE] L0045 LOADW #35fd,L05 -> -(SP) JL (SP)+,#02 [TRUE] L0043 LOADW #35fd,L05 -> -(SP) JL (SP)+,#2710 [FALSE] L0043 STOREW #357b,#01,"it" LOADW #35fd,L05 -> G49 JUMP L0044 L0043: LOADW #35fd,L05 -> -(SP) SUB (SP)+,#2710 -> -(SP) CALL_2S R0035 ((SP)+) -> -(SP) STOREW #357b,#01,(SP)+ L0044: ADD L08,#01 -> -(SP) ADD (SP)+,L05 -> -(SP) SUB (SP)+,G3c -> -(SP) CALL_VN R0022 ((SP)+,#357b,#01) INC L09 INC L05 JUMP L0042 L0045: ADD L09,L08 -> -(SP) STOREB #3421,#01,(SP)+ RET #2710 Routine R0011, 10 locals SUB G40,#01 -> L02 STORE L04,#00 LOADW #3627,#00 -> L05 STORE L01,#00 L0001: JG L01,L02 [TRUE] L0013 LOADW #3627,L01 -> L06 TEST_ATTR L06,#02 [TRUE] L0012 STORE L07,L06 L0002: GET_PARENT L07 -> L07 JE L07,G18,G17,#00 [FALSE] L0002 JZ L00 [FALSE] L0004 JE L07,G18 [FALSE] L0004 JZ G5c [TRUE] L0003 CALL_2S R0021 (L06) -> -(SP) JE (SP)+,#01 [FALSE] L0004 L0003: INC L04 STORE L05,L06 L0004: JE L00,#01 [FALSE] L0005 GET_PARENT L06 -> -(SP) JE (SP)+,G17 [FALSE] L0005 INC L04 STORE L05,L06 L0005: JE L00,#02 [FALSE] L0006 JE L07,G18 [FALSE] L0006 INC L04 STORE L05,L06 L0006: JE L00,#03 [FALSE] L0007 GET_PARENT L06 -> -(SP) JE (SP)+,G17 [FALSE] L0007 INC L04 STORE L05,L06 L0007: JE L00,#04,#05 [FALSE] L0011 JE G5d,#ffff [FALSE] L0009 GET_PARENT L06 -> -(SP) JE (SP)+,G17 [FALSE] L0008 INC L04 STORE L05,L06 L0008: JUMP L0011 L0009: JE L00,#04 [FALSE] L0010 GET_PARENT L06 -> -(SP) JE (SP)+,G17 [FALSE] L0010 JE L06,G5d [TRUE] L0010 INC L04 STORE L05,L06 L0010: JE L00,#05 [FALSE] L0011 GET_PARENT L06 -> -(SP) JE (SP)+,G17 [FALSE] L0011 JIN L06,G5d [FALSE] L0011 INC L04 STORE L05,L06 L0011: JE L00,#06 [FALSE] L0012 CALL_2S R0008 (L06) -> -(SP) JE (SP)+,#01 [FALSE] L0012 INC L04 STORE L05,L06 L0012: INC L01 JUMP L0001 L0013: JE L04,#01 [FALSE] L0014 RET L05 L0014: JE L00,#06 [FALSE] L0015 JZ L04 [FALSE] L0015 LOADW #3627,#00 -> -(SP) RET_POPPED L0015: JE G4d,#01 [FALSE] L0028 AND G4e,#08 -> -(SP) JZ (SP)+ [TRUE] L0028 JL L00,#02 [TRUE] L0016 JG L00,#05 [FALSE] L0017 L0016: STORE G59,#07 RET #ffff L0017: STORE L01,#00 STORE G41,#01 LOADW #3482,#00 -> L09 CALL_1S R0014 -> L02 JUMP L0019 L0018: CALL_1S R0014 -> L02 L0019: JE L02,#ffff [TRUE] L0026 JL L01,G4f [FALSE] L0026 ADD L01,L09 -> -(SP) JL (SP)+,#3f [FALSE] L0026 STORE L08,#00 TEST_ATTR L02,#02 [TRUE] L0020 TEST_ATTR L02,#1a [TRUE] L0020 STORE L08,#01 L0020: JE L00,#03,#04 [FALSE] L0021 GET_PARENT L02 -> -(SP) JE (SP)+,G17 [TRUE] L0021 STORE L08,#00 L0021: CALL_VS R0374 (L02,L08) -> L03 JE L03,#01 [FALSE] L0022 STORE L08,#01 JUMP L0023 L0022: JE L03,#02 [FALSE] L0023 STORE L08,#00 L0023: JE L08,#01 [FALSE] L0024 INC L01 ADD L01,L09 -> -(SP) STOREW #3482,(SP)+,L02 JUMP L0025 L0024: STORE L01,L01 L0025: JUMP L0018 L0026: JL L01,G4f [FALSE] L0027 JL G4f,#64 [FALSE] L0027 STORE G59,#10 STORE G34,G4f LOADW #3482,#00 -> G35 RET #ffff L0027: ADD L01,L09 -> -(SP) STOREW #3482,#00,(SP)+ STORE G36,L00 RTRUE L0028: STORE L01,#00 L0029: JL L01,G40 [FALSE] L0030 STOREW #36a7,L01,#00 INC L01 JUMP L0029 L0030: STORE L06,#01 STORE L01,#00 L0031: JL L01,G40 [FALSE] L0036 LOADW #36a7,L01 -> -(SP) JZ (SP)+ [FALSE] L0035 PUSH L06 INC L06 STOREW #36a7,L01,(SP)+ STORE L08,#00 ADD L01,#01 -> L02 L0032: JL L02,G40 [FALSE] L0034 LOADW #36a7,L02 -> -(SP) JZ (SP)+ [FALSE] L0033 LOADW #3627,L02 -> -(SP) LOADW #3627,L01 -> -(SP) CALL_VS R0015 ((SP)+,(SP)+) -> -(SP) JE (SP)+,#01 [FALSE] L0033 STORE L08,#01 LOADW #36a7,L01 -> -(SP) STOREW #36a7,L02,(SP)+ L0033: INC L02 JUMP L0032 L0034: JE L08,#01 [FALSE] L0035 SUB #01,L06 -> -(SP) STOREW #36a7,L01,(SP)+ L0035: INC L01 JUMP L0031 L0036: DEC L06 STORE G41,L06 JG L06,#01 [FALSE] L0042 JZ G4d [FALSE] L0042 STORE L02,#00 STORE L04,#00 STORE L01,#00 L0037: JL L01,G40 [FALSE] L0040 LOADW #3627,L01 -> -(SP) CALL_VS R0374 ((SP)+,#02) -> L03 JE L03,L02 [FALSE] L0038 INC L04 L0038: JG L03,L02 [FALSE] L0039 STORE L02,L03 STORE L04,#01 LOADW #3627,L01 -> L05 L0039: INC L01 JUMP L0037 L0040: JE L04,#01 [FALSE] L0041 RET L05 L0041: RFALSE L0042: JZ G4d [FALSE] L0043 STORE G4e,#00 L0043: JE L06,#01 [FALSE] L0044 STORE G61,#01 L0044: CALL_1S R0014 -> -(SP) RET_POPPED Routine R0012, 3 locals JE G36,#04,#05 [FALSE] L0006 STORE L01,#01 STORE L02,#00 L0001: LOADW #3482,#00 -> -(SP) JG L01,(SP)+ [TRUE] L0005 JE G36,#04 [FALSE] L0002 LOADW #3482,L01 -> -(SP) JE (SP)+,L00 [FALSE] L0003 L0002: JE G36,#05 [FALSE] L0004 LOADW #3482,L01 -> -(SP) JIN (SP)+,L00 [FALSE] L0004 L0003: INC L02 LOADW #3482,L01 -> -(SP) STOREW #3482,L02,(SP)+ L0004: INC L01 JUMP L0001 L0005: STOREW #3482,#00,L02 L0006: JE G36,#02 [FALSE] L0014 STORE L01,#01 STORE L02,#00 L0007: LOADW #3482,#00 -> -(SP) JG L01,(SP)+ [TRUE] L0009 GET_PARENT G17 -> -(SP) LOADW #3482,L01 -> -(SP) GET_PARENT (SP)+ -> -(SP) JE (SP)+,(SP)+ [FALSE] L0008 INC L02 L0008: INC L01 JUMP L0007 L0009: JE G68,#02 [TRUE] L0010 JG L02,#00 [FALSE] L0014 L0010: STORE L01,#01 STORE L02,#00 L0011: LOADW #3482,#00 -> -(SP) JG L01,(SP)+ [TRUE] L0013 GET_PARENT G17 -> -(SP) LOADW #3482,L01 -> -(SP) GET_PARENT (SP)+ -> -(SP) JE (SP)+,(SP)+ [FALSE] L0012 INC L02 LOADW #3482,L01 -> -(SP) STOREW #3482,L02,(SP)+ L0012: INC L01 JUMP L0011 L0013: STOREW #3482,#00,L02 L0014: LOADW #3482,#00 -> L01 JZ L01 [FALSE] L0015 RET #11 L0015: RFALSE Routine R0013, 7 locals AND G4e,#01 -> -(SP) JZ (SP)+ [TRUE] L0001 STORE L04,#28 L0001: AND G4e,#02 -> -(SP) JZ (SP)+ [TRUE] L0002 ADD L04,#28 -> L04 L0002: AND G4e,#04 -> -(SP) JZ (SP)+ [TRUE] L0003 ADD L04,#28 -> L04 L0003: AND G4e,#10 -> -(SP) JZ (SP)+ [TRUE] L0004 ADD L04,#28 -> L04 L0004: AND G4e,#20 -> -(SP) JZ (SP)+ [TRUE] L0005 ADD L04,#28 -> L04 L0005: AND G4e,#40 -> -(SP) JZ (SP)+ [TRUE] L0006 ADD L04,#28 -> L04 L0006: AND G4e,#80 -> -(SP) JZ (SP)+ [TRUE] L0007 ADD L04,#28 -> L04 L0007: STORE L05,#1e STORE L06,#14 JE G60,#01,#06 [FALSE] L0008 STORE L05,#14 STORE L06,#1e L0008: STORE L03,#00 L0009: JL L03,G40 [FALSE] L0022 LOADW #3627,L03 -> L02 GET_PARENT L02 -> L00 STORE L01,#00 JE L00,G17 [FALSE] L0010 STORE L01,L05 L0010: JE L00,G18 [FALSE] L0011 STORE L01,L06 L0011: JZ L01 [FALSE] L0012 JE L00,#06 [TRUE] L0012 STORE L01,#0a L0012: AND G4e,#01 -> -(SP) JZ (SP)+ [TRUE] L0013 JE L02,G49,G4a,G4b [TRUE] L0013 ADD L01,#28 -> L01 L0013: AND G4e,#02 -> -(SP) JZ (SP)+ [TRUE] L0014 JE L00,G17 [FALSE] L0014 ADD L01,#28 -> L01 L0014: AND G4e,#04 -> -(SP) JZ (SP)+ [TRUE] L0015 JE L00,G18 [FALSE] L0015 ADD L01,#28 -> L01 L0015: AND G4e,#40 -> -(SP) JZ (SP)+ [TRUE] L0016 TEST_ATTR L02,#09 [FALSE] L0016 ADD L01,#28 -> L01 L0016: AND G4e,#80 -> -(SP) JZ (SP)+ [TRUE] L0017 TEST_ATTR L02,#09 [TRUE] L0017 ADD L01,#28 -> L01 L0017: AND G4e,#10 -> -(SP) JZ (SP)+ [TRUE] L0018 JE L00,G49 [FALSE] L0018 ADD L01,#28 -> L01 L0018: AND G4e,#20 -> -(SP) JZ (SP)+ [TRUE] L0019 TEST_ATTR L00,#00 [FALSE] L0019 CALL_2S R0043 (L00) -> -(SP) JE (SP)+,#01 [FALSE] L0019 ADD L01,#28 -> L01 L0019: CALL_VS R0374 (L02,#02) -> -(SP) ADD L01,(SP)+ -> L01 JL L01,L04 [FALSE] L0020 STOREW #3627,L03,#ffff JUMP L0021 L0020: STOREW #36a7,L03,L01 L0021: INC L03 JUMP L0009 L0022: STORE G41,#02 RTRUE Routine R0014, 4 locals JE G41,#01 [TRUE] L0001 CALL_1N R0013 L0001: STORE L00,#00 STORE L02,#ffff STORE L03,#00 L0002: JL L03,G40 [FALSE] L0004 LOADW #3627,L03 -> -(SP) JL (SP)+,#00 [TRUE] L0003 LOADW #36a7,L03 -> L01 JG L01,L02 [FALSE] L0003 STORE L02,L01 STORE L00,L03 L0003: INC L03 JUMP L0002 L0004: JL L02,#00 [FALSE] L0005 RET #ffff L0005: LOADW #3627,L00 -> L03 STOREW #3627,L00,#ffff RET L03 Routine R0015, 9 locals JE L00,L01 [TRUE] RTRUE JZ L00 [TRUE] RFALSE JZ L01 [TRUE] RFALSE GET_PARENT L00 -> -(SP) JE (SP)+,#06 [TRUE] RFALSE GET_PARENT L01 -> -(SP) JE (SP)+,#06 [TRUE] RFALSE GET_PROP L00,#1f -> -(SP) JZ (SP)+ [FALSE] L0001 GET_PROP L01,#1f -> -(SP) JZ (SP)+ [TRUE] L0002 L0001: GET_PROP L01,#1f -> -(SP) GET_PROP L00,#1f -> -(SP) JE (SP)+,(SP)+ [FALSE] RFALSE STORE G44,#0104 STORE G45,L00 STORE G46,L01 STORE L07,G2f CALL_VS R0049 (L00,#1f) -> L06 STORE G2f,L07 JE L06,#ffff [TRUE] RTRUE JE L06,#fffe [TRUE] RFALSE L0002: GET_PROP_ADDR L00,#01 -> L02 GET_PROP_ADDR L00,#01 -> Gef JZ Gef [TRUE] L0003 GET_PROP_LEN Gef -> Gef L0003: PUSH Gef DIV (SP)+,#02 -> L04 GET_PROP_ADDR L01,#01 -> L03 GET_PROP_ADDR L01,#01 -> Gef JZ Gef [TRUE] L0004 GET_PROP_LEN Gef -> Gef L0004: PUSH Gef DIV (SP)+,#02 -> L05 STORE L06,#00 L0005: JL L06,L04 [FALSE] L0009 STORE L08,#00 STORE L07,#00 L0006: JL L07,L05 [FALSE] L0008 LOADW L03,L07 -> -(SP) LOADW L02,L06 -> -(SP) JE (SP)+,(SP)+ [FALSE] L0007 STORE L08,#01 L0007: INC L07 JUMP L0006 L0008: JZ L08 [TRUE] RFALSE INC L06 JUMP L0005 L0009: STORE L07,#00 L0010: JL L07,L05 [FALSE] L0014 STORE L08,#00 STORE L06,#00 L0011: JL L06,L04 [FALSE] L0013 LOADW L03,L07 -> -(SP) LOADW L02,L06 -> -(SP) JE (SP)+,(SP)+ [FALSE] L0012 STORE L08,#01 L0012: INC L06 JUMP L0011 L0013: JZ L08 [TRUE] RFALSE INC L07 JUMP L0010 L0014: RTRUE Routine R0016, 6 locals JZ L00 [FALSE] L0005 STORE L02,G31 STORE L00,#01 STORE L05,#01 JE L02,"l" [FALSE] L0001 PRINT "look" JUMP L0005 L0001: JE L02,"z" [FALSE] L0002 PRINT "wait" JUMP L0005 L0002: JE L02,"x" [FALSE] L0003 PRINT "examine" JUMP L0005 L0003: JE L02,"i","inv" [FALSE] L0004 PRINT "inventory" JUMP L0005 L0004: CALL_2S R0371 (L02) -> -(SP) JZ (SP)+ [FALSE] L0005 PRINT_ADDR L02 L0005: SUB G37,L01 -> L03 STORE L04,L00 L0006: JG L04,L03 [TRUE] L0012 JE L05,#01 [FALSE] L0007 PRINT_CHAR ' ' L0007: LOADW #35fd,L04 -> L02 JZ L02 [FALSE] L0008 PRINT "those things" JUMP L0011 L0008: JE L02,#01 [FALSE] L0009 PRINT "that" JUMP L0011 L0009: JL L02,#2710 [TRUE] L0010 SUB L02,#2710 -> -(SP) CALL_2S R0035 ((SP)+) -> L02 PRINT_ADDR L02 JUMP L0011 L0010: CALL_2N R0077 (L02) L0011: STORE L05,#01 INC L04 JUMP L0006 L0012: RTRUE Routine R0017, 3 locals STORE G3f,G3e JZ G63 [TRUE] L0001 STORE G64,G63 RET #12 L0001: DEC G2f CALL_1S R0037 -> L01 STORE L02,#04 JE L01,G47 [FALSE] L0002 STORE L02,#0e L0002: GET_PARENT G17 -> L00 TEST_ATTR L00,#18 [FALSE] L0003 CALL_VS R0032 (L00,L01) -> -(SP) JE (SP)+,#01 [FALSE] L0003 STORE L02,#0d L0003: JG G59,L02 [FALSE] L0004 RET G59 L0004: RET L02 Routine R0018, 3 locals LOADW #3482,#00 -> L01 JE L01,#3f [FALSE] L0001 STORE G16,#01 RTRUE L0001: STORE L02,#01 L0002: JG L02,L01 [TRUE] L0003 LOADW #3482,L02 -> -(SP) JE L00,(SP)+ [TRUE] RTRUE INC L02 JUMP L0002 L0003: INC L01 STOREW #3482,L01,L00 STOREW #3482,#00,L01 RTRUE Routine R0019, 5 locals LOADW #3482,#00 -> L01 STORE L04,#00 STORE L02,#01 L0001: JG L02,L01 [TRUE] L0005 LOADW #3482,L02 -> -(SP) JE L00,(SP)+ [FALSE] L0004 STORE L03,L02 L0002: JG L03,L01 [TRUE] L0003 ADD L03,#01 -> -(SP) LOADW #3482,(SP)+ -> -(SP) STOREW #3482,L03,(SP)+ INC L03 JUMP L0002 L0003: DEC L01 PUSH L01 STOREW #3482,#00,(SP)+ RET L04 L0004: INC L02 JUMP L0001 L0005: STORE L04,#09 RET L04 Routine R0020, 4 locals L0001: LOADW #3482,#00 -> L01 STORE L02,#01 L0002: JG L02,L01 [TRUE] L0004 LOADW #3482,L02 -> L03 TEST_ATTR L03,L00 [TRUE] L0003 CALL_2N R0019 (L03) JUMP L0001 L0003: INC L02 JUMP L0002 L0004: RTRUE Routine R0021, 1 local JL G5c,#80 [TRUE] L0001 SUB G5c,#80 -> -(SP) TEST_ATTR L00,(SP)+ [TRUE] RTRUE RFALSE L0001: STORE G1e,L00 SUB G5c,#10 -> -(SP) LOADW #4004,(SP)+ -> -(SP) CALL_1S (SP)+ -> -(SP) RET_POPPED Routine R0022, 5 locals MUL L00,#02 -> -(SP) SUB (SP)+,#01 -> L03 MUL L02,#02 -> -(SP) SUB (SP)+,#01 -> L04 PUSH L04 INC L04 LOADW L01,(SP)+ -> -(SP) PUSH L03 INC L03 STOREW #3421,(SP)+,(SP)+ LOADW L01,L04 -> -(SP) STOREW #3421,L03,(SP)+ RTRUE Routine R0023, 4 locals STORE L03,#00 JZ G63 [TRUE] L0001 STORE G65,#02 CALL_1S G63 -> -(SP) JZ (SP)+ [FALSE] RTRUE L0001: JE G17,L00,L01 [FALSE] L0002 CALL_2S R0369 (G17) -> -(SP) JZ (SP)+ [FALSE] RTRUE L0002: JE L02,#05 [FALSE] L0004 JE G5d,#ffff [TRUE] L0004 CALL_2S R0024 (G5d) -> -(SP) JE (SP)+,#01 [FALSE] L0003 CALL_VN R0027 (G5d,#00,L02) L0003: JUMP L0005 L0004: CALL_VN R0027 (L00,L01,L02) CALL_VN R0027 (L01,#00,L02) L0005: RTRUE Routine R0024, 1 local TEST_ATTR L00,#14 [TRUE] RTRUE TEST_ATTR L00,#17 [TRUE] RTRUE TEST_ATTR L00,#03 [FALSE] L0001 TEST_ATTR L00,#0e [TRUE] RTRUE L0001: RFALSE Routine R0025, 1 local JE G62,#00,#01 [TRUE] L0001 CALL_2N R0026 (L00) RTRUE L0001: STORE G2f,G43 CALL_2N R0031 (L00) STORE G5e,#01 RTRUE Routine R0026, 3 locals STORE L01,G62 STORE L02,G45 STORE Gef,G62 JE Gef,#03 [FALSE] L0003 GET_PROP L00,#0b -> -(SP) JE (SP)+,#00,#ffff [FALSE] L0001 RTRUE L0001: JZ G45 [FALSE] L0002 CALL_VS R0049 (L00,#0b) -> G45 L0002: JUMP L0011 L0003: JE Gef,#04 [FALSE] L0006 GET_PROP L00,#0d -> -(SP) JE (SP)+,#00,#ffff [FALSE] L0004 RTRUE L0004: JZ G45 [FALSE] L0005 CALL_VS R0049 (L00,#0d) -> G45 L0005: JUMP L0011 L0006: JE Gef,#02 [FALSE] L0008 GET_PROP_ADDR L00,#1c -> -(SP) JZ (SP)+ [FALSE] L0007 RTRUE L0007: CALL_VN R0047 (L00,#1c) JUMP L0011 L0008: JE Gef,#06 [FALSE] L0010 JE L00,G45 [FALSE] L0009 STORE G46,#01 L0009: JUMP L0011 L0010: JE Gef,#05 [FALSE] L0011 CALL_2N G45 (L00) STORE G45,L02 L0011: STORE G62,L01 RTRUE Routine R0027, 3 locals JZ L00 [TRUE] RTRUE JE L02,#04 [FALSE] L0001 JE L00,G5d [TRUE] RTRUE L0001: JZ G4d [FALSE] L0002 JE L00,G18 [FALSE] L0002 JZ G62 [FALSE] L0002 JE L02,#06 [TRUE] L0002 CALL_2N R0027 (#06) L0002: GET_CHILD L00 -> -(SP) [FALSE] L0003 L0003: PULL L00 JZ L00 [TRUE] L0005 L0004: CALL_VN R0028 (L00,L01,L02) GET_SIBLING L00 -> L00 [TRUE] L0004 L0005: RTRUE Routine R0028, 6 locals JE G62,#00,#01 [TRUE] L0001 CALL_2N R0026 (L00) JUMP L0007 L0001: JG G43,G30 [FALSE] L0002 STORE L03,G2b STORE G2b,#00 CALL_VN R0030 (L00,#01) STORE G2b,L03 JUMP L0007 L0002: STORE G2f,G43 CALL_1S R0033 -> L03 JE L03,#01 [FALSE] L0003 JE G49,L00 [FALSE] L0003 CALL_VN R0030 (G49,#01) L0003: JE L03,#02 [FALSE] L0004 JE G4a,L00 [FALSE] L0004 CALL_VN R0030 (G4a,#01) L0004: JE L03,#03 [FALSE] L0005 JE G4b,L00 [FALSE] L0005 CALL_VN R0030 (G4b,#01) L0005: JE L03,#04 [FALSE] L0006 JE G08,L00 [FALSE] L0006 CALL_VN R0030 (G08,#01) L0006: DEC G2f CALL_2N R0031 (L00) L0007: GET_CHILD L00 -> -(SP) [FALSE] L0008 L0008: JZ (SP)+ [TRUE] L0009 JE L00,L01 [TRUE] L0009 CALL_2S R0024 (L00) -> -(SP) JE (SP)+,#01 [FALSE] L0009 CALL_VN R0027 (L00,#00,L02) L0009: GET_PROP_ADDR L00,#0c -> L04 JZ L04 [TRUE] L0013 LOADW L04,#00 -> -(SP) CALL_VS R0045 ((SP)+,G14) -> -(SP) JG (SP)+,#00 [FALSE] L0010 ADD #02,L02 -> G66 CALL_VN R0049 (L00,#0c) STORE G66,#00 JUMP L0013 L0010: GET_PROP_ADDR L00,#0c -> Gef JZ Gef [TRUE] L0011 GET_PROP_LEN Gef -> Gef L0011: STORE L05,Gef STORE L03,#00 L0012: MUL #02,L03 -> -(SP) JL (SP)+,L05 [FALSE] L0013 LOADW L04,L03 -> -(SP) CALL_VN R0028 ((SP)+,#00,L02) INC L03 JUMP L0012 L0013: RTRUE Routine R0029, 1 local JL G66,#02 [TRUE] L0001 SUB G66,#02 -> -(SP) CALL_VN R0028 (L00,#00,(SP)+) L0001: JE G66,#01 [FALSE] L0002 CALL_2S R0070 (L00) -> -(SP) JE (SP)+,#01 [FALSE] L0002 STORE G67,#01 L0002: RTRUE Routine R0030, 3 locals JZ G5c [TRUE] L0001 CALL_2S R0021 (L00) -> -(SP) JZ (SP)+ [FALSE] L0001 RTRUE L0001: JL L01,G42 [TRUE] RTRUE JG L01,G42 [FALSE] L0002 STORE G42,L01 STORE G40,#00 JUMP L0004 L0002: MUL #02,G40 -> -(SP) JL (SP)+,#80 [FALSE] RTRUE STORE L02,#00 L0003: JL L02,G40 [FALSE] L0004 LOADW #3627,L02 -> -(SP) JE (SP)+,L00 [TRUE] RTRUE INC L02 JUMP L0003 L0004: PUSH G40 INC G40 STOREW #3627,(SP)+,L00 RTRUE Routine R0031, 5 locals JZ G4d [TRUE] L0001 LOADB #3421,#01 -> -(SP) JG G2f,(SP)+ [FALSE] L0001 CALL_VN R0030 (L00,#00) RFALSE L0001: GET_PROP L00,#1f -> -(SP) JZ (SP)+ [TRUE] L0007 STORE G44,#ffff STORE L04,G2f CALL_VS R0049 (L00,#1f) -> L02 JG L02,#00 [FALSE] L0006 ADD L04,L02 -> G2f L0002: JE G44,#0105 [FALSE] L0005 JZ G51 [FALSE] L0003 JUMP L0015 L0003: JZ G4d [FALSE] L0004 STORE G4d,#01 STORE G4e,#00 STORE G4f,#00 L0004: OR G4e,#08 -> G4e JZ G4f [FALSE] L0005 STORE G4f,#64 L0005: CALL_VN R0030 (L00,L02) RFALSE L0006: JZ L02 [FALSE] L0007 JUMP L0015 L0007: CALL_1S R0033 -> L03 JE L03,#01 [FALSE] L0008 JE L00,G49 [TRUE] L0011 L0008: JE L03,#02 [FALSE] L0009 JE L00,G4a [TRUE] L0011 L0009: JE L03,#03 [FALSE] L0010 JE L00,G4b [TRUE] L0011 L0010: JE L03,#04 [FALSE] L0012 JE L00,G08 [FALSE] L0012 L0011: CALL_VN R0030 (L00,#01) RFALSE L0012: DEC G2f STORE L04,G2f CALL_2S R0375 (L00) -> L01 JL L01,#00 [FALSE] L0013 INC G2f L0013: JG L01,#00 [FALSE] L0014 STORE L02,L01 JUMP L0002 L0014: JZ L01 [TRUE] L0015 CALL_VS R0032 (L00,L03) -> -(SP) JZ (SP)+ [FALSE] L0017 L0015: JZ G4d [TRUE] L0016 CALL_VN R0030 (L00,#00) L0016: RFALSE L0017: JL L01,#00 [FALSE] L0019 STORE L01,#01 L0018: CALL_1S R0037 -> -(SP) CALL_VS R0032 (L00,(SP)+) -> -(SP) JE #00,(SP)+ [TRUE] L0019 INC L01 JUMP L0018 L0019: CALL_VN R0030 (L00,L01) RTRUE Routine R0032, 5 locals JZ L00 [TRUE] RFALSE GET_PROP_ADDR L00,#01 -> L02 GET_PROP_ADDR L00,#01 -> Gef JZ Gef [TRUE] L0001 GET_PROP_LEN Gef -> Gef L0001: PUSH Gef DIV (SP)+,#02 -> -(SP) SUB (SP)+,#01 -> L03 STORE L04,#00 L0002: JG L04,L03 [TRUE] L0003 LOADW L02,L04 -> -(SP) JE L01,(SP)+ [TRUE] RTRUE INC L04 JUMP L0002 L0003: RFALSE Routine R0033, 1 local CALL_1S R0037 -> L00 JE L00,"it","them" [FALSE] L0001 RTRUE L0001: JE L00,"him" [FALSE] L0002 RET #02 L0002: JE L00,"her" [FALSE] L0003 RET #03 L0003: JE L00,S023 OR "me","myself","self" [FALSE] L0004 RET #04 L0004: JZ L00 [TRUE] RFALSE LOADB L00,#06 -> -(SP) AND (SP)+,#80 -> -(SP) JZ (SP)+ [TRUE] RFALSE RET L00 Routine R0034, 2 locals CALL_1S R0037 -> L01 JZ L01 [TRUE] RFALSE LOADB L01,#06 -> L00 AND L00,#08 -> -(SP) JZ (SP)+ [TRUE] RFALSE LOADB L01,#08 -> -(SP) RET_POPPED Routine R0035, 2 locals STORE L01,#400c L0001: LOADW L01,#01 -> -(SP) JE L00,(SP)+ [FALSE] L0002 LOADW L01,#00 -> -(SP) RET_POPPED L0002: ADD L01,#04 -> L01 JUMP L0001 orphan code fragment: STORE L01,#400c CALL_2N R0083 (#01) RET L01 Routine R0037, 3 locals LOADB #3421,#01 -> -(SP) JG G2f,(SP)+ [FALSE] L0001 INC G2f RFALSE L0001: MUL G2f,#02 -> -(SP) SUB (SP)+,#01 -> L00 INC G2f LOADW #3421,L00 -> L01 JZ L01 [FALSE] L0003 MUL G2f,#04 -> -(SP) SUB (SP)+,#03 -> L02 LOADB #3421,L02 -> -(SP) LOADB #33a8,(SP)+ -> L00 JE L00,#2c [FALSE] L0002 STORE L01,"xcomma" L0002: JE L00,#2e [FALSE] L0003 STORE L01,"then" L0003: RET L01 Routine R0038, 0 locals LOADB #3421,#01 -> -(SP) JG G2f,(SP)+ [FALSE] L0001 INC G2f RET #ffff L0001: CALL_1S R0037 -> -(SP) RET_POPPED Routine R0039, 1 local MUL L00,#04 -> -(SP) ADD (SP)+,#01 -> -(SP) LOADB #3421,(SP)+ -> -(SP) ADD #33a8,(SP)+ -> -(SP) RET_POPPED Routine R0040, 1 local MUL L00,#04 -> -(SP) LOADB #3421,(SP)+ -> -(SP) RET_POPPED Routine R0041, 10 locals STORE L01,G2f STORE G2f,L00 CALL_1S R0037 -> L02 STORE G2f,L01 CALL_2S R0006 (L02) -> L02 JL L02,#01 [TRUE] L0001 RET L02 L0001: MUL L00,#04 -> -(SP) ADD (SP)+,#01 -> L01 LOADB #3421,L01 -> L02 ADD L02,#33a8 -> L04 SUB L01,#01 -> -(SP) LOADB #3421,(SP)+ -> L05 CALL_VS R0373 (L04,L05) -> L07 JZ L07 [TRUE] L0002 RET L07 L0002: JL L05,#04 [TRUE] L0003 STORE L06,#03e8 L0003: JE L05,#03 [FALSE] L0004 STORE L06,#64 L0004: JE L05,#02 [FALSE] L0005 STORE L06,#0a L0005: JE L05,#01 [FALSE] L0006 STORE L06,#01 L0006: STORE L07,#00 STORE L03,#00 SUB L05,#01 -> L05 STORE L03,#00 L0007: JG L03,L05 [TRUE] L0019 LOADB L04,L03 -> L09 JE L09,#30 [FALSE] L0008 STORE L08,#00 JUMP L0018 L0008: JE L09,#31 [FALSE] L0009 STORE L08,#01 JUMP L0018 L0009: JE L09,#32 [FALSE] L0010 STORE L08,#02 JUMP L0018 L0010: JE L09,#33 [FALSE] L0011 STORE L08,#03 JUMP L0018 L0011: JE L09,#34 [FALSE] L0012 STORE L08,#04 JUMP L0018 L0012: JE L09,#35 [FALSE] L0013 STORE L08,#05 JUMP L0018 L0013: JE L09,#36 [FALSE] L0014 STORE L08,#06 JUMP L0018 L0014: JE L09,#37 [FALSE] L0015 STORE L08,#07 JUMP L0018 L0015: JE L09,#38 [FALSE] L0016 STORE L08,#08 JUMP L0018 L0016: JE L09,#39 [FALSE] L0017 STORE L08,#09 JUMP L0018 L0017: RET #fc18 L0018: MUL L06,L08 -> -(SP) ADD L07,(SP)+ -> L07 DIV L06,#0a -> L06 INC L03 JUMP L0007 L0019: JG L05,#03 [FALSE] L0020 STORE L07,#2710 L0020: RET L07 Routine R0042, 1 local TEST_ATTR L00,#00 [FALSE] L0003 JE L00,G08 [TRUE] L0003 CALL_2S R0043 (L00) -> -(SP) JE (SP)+,#01 [FALSE] L0001 STORE G4a,L00 JUMP L0002 L0001: STORE G4b,L00 L0002: JUMP L0004 L0003: STORE G49,L00 L0004: RTRUE Routine R0043, 1 local TEST_ATTR L00,#07 [FALSE] RTRUE RFALSE Routine R0044, 4 locals LOADB L00,#00 -> L03 STORE L02,#01 L0001: JG L02,L03 [TRUE] L0002 LOADB L01,L02 -> -(SP) STOREB L00,L02,(SP)+ INC L02 JUMP L0001 L0002: RTRUE Routine R0045, 4 locals JE L00,L01 [FALSE] L0001 RFALSE L0001: JL L00,#00 [FALSE] L0002 JL L01,#00 [TRUE] L0002 RTRUE L0002: JL L00,#00 [TRUE] L0003 JL L01,#00 [FALSE] L0003 RET #ffff L0003: AND L00,#7fff -> L02 AND L01,#7fff -> L03 JG L02,L03 [FALSE] L0004 RTRUE L0004: RET #ffff Routine R0046, 1 local JZ L00 [FALSE] L0001 RFALSE L0001: JL L00,#01 [TRUE] L0002 JG L00,G14 [TRUE] L0002 RTRUE L0002: CALL_VS R0045 (L00,S001 OR "lubricate") -> -(SP) JL (SP)+,#00 [TRUE] L0003 RET #03 L0003: CALL_VS R0045 (L00,#1667) -> -(SP) JL (SP)+,#00 [TRUE] L0004 RET #02 L0004: RFALSE Routine R0047, 4 locals CALL_VS R0382 (L00,L01) -> -(SP) JG (SP)+,#02 [FALSE] L0001 CALL_VS R0049 (L00,L01) -> -(SP) RET_POPPED L0001: CALL_VS R0377 (L00,L01) -> -(SP) JE (SP)+,#ffff [TRUE] RFALSE CALL_VS R0377 (L00,L01) -> -(SP) CALL_2S R0046 ((SP)+) -> L03 JE L03,#00,#01 [FALSE] L0002 CALL_VS R0083 (#02,L00,L01) -> -(SP) RET_POPPED L0002: JE L03,#03 [FALSE] L0004 CALL_VS R0377 (L00,L01) -> -(SP) PRINT_PADDR (SP)+ JZ L02 [FALSE] L0003 NEW_LINE L0003: RTRUE L0004: CALL_VS R0049 (L00,L01) -> -(SP) RET_POPPED Routine R0048, 3 locals CALL_VS R0377 (L00,L01) -> -(SP) CALL_2S R0046 ((SP)+) -> L02 JE L02,#02 [FALSE] L0001 CALL_VS R0049 (L00,L01) -> -(SP) RET_POPPED L0001: CALL_VS R0377 (L00,L01) -> -(SP) RET_POPPED Routine R0049, 8 locals JE L00,#13 [FALSE] L0001 JE L01,#13 [TRUE] L0001 STORE L00,G0a L0001: CALL_VS R0377 (L00,L01) -> -(SP) JE (SP)+,#ffff,#00 [TRUE] RFALSE CALL_VS R0381 (L00,L01) -> L03 CALL_VS R0382 (L00,L01) -> L04 STORE L06,Geb STORE Geb,L00 STORE L07,Ge9 JE L01,#06 [FALSE] L0002 STORE Ge9,G27 JUMP L0003 L0002: STORE Ge9,G19 L0003: STORE L02,#00 L0004: DIV L04,#02 -> -(SP) JL L02,(SP)+ [FALSE] L0010 LOADW L03,L02 -> -(SP) JE (SP)+,#ffff [FALSE] L0005 STORE Geb,L06 STORE Ge9,L07 RFALSE L0005: LOADW L03,L02 -> -(SP) CALL_2S R0046 ((SP)+) -> L05 JE L05,#02 [FALSE] L0007 LOADW L03,L02 -> -(SP) CALL_1S (SP)+ -> L05 JZ L05 [TRUE] L0006 STORE Geb,L06 STORE Ge9,L07 RET L05 L0006: JUMP L0009 L0007: JE L05,#03 [FALSE] L0008 LOADW L03,L02 -> -(SP) PRINT_ADDR (SP)+ NEW_LINE JUMP L0009 L0008: CALL_VN R0083 (#03,L00,L01) L0009: INC L02 JUMP L0004 L0010: STORE Geb,L06 STORE Ge9,L07 RFALSE Routine R0050, 0 locals JE G03,#ffff [FALSE] L0001 STORE G01,G06 STORE G02,G07 JUMP L0002 L0001: DIV G03,#3c -> G01 MOD G03,#3c -> G02 L0002: RTRUE Routine R0051, 2 locals STORE G03,L00 STORE G04,L01 STORE G05,#00 JL L01,#00 [FALSE] L0001 SUB #00,L01 -> G05 L0001: RTRUE Routine R0052, 1 local PRINT " [Your score has just gone " JG G0e,G06 [FALSE] L0001 SUB G0e,G06 -> L00 PRINT "down" JUMP L0002 L0001: SUB G06,G0e -> L00 PRINT "up" L0002: PRINT " by " CALL_2N R0084 (L00) PRINT " point" JG L00,#01 [FALSE] L0003 PRINT "s" L0003: PRINT ".] " RTRUE Routine R0053, 4 locals LOADW #32,#00 -> G15 STORE G08,#14 SUB #020d,#ff -> G14 PUT_PROP "yourself",#1d,#07 STORE Geb,#05 STORE Gea,#05 CALL_1S R0329 -> L01 STORE G0e,G06 INSERT_OBJ G08,G00 L0001: GET_PARENT G00 -> -(SP) JZ (SP)+ [TRUE] L0002 GET_PARENT G00 -> G00 JUMP L0001 L0002: GET_CHILD G08 -> -(SP) [FALSE] L0003 L0003: PULL L00 JZ L00 [TRUE] L0005 L0004: SET_ATTR L00,#0c CLEAR_ATTR L00,#02 GET_SIBLING L00 -> L00 [TRUE] L0004 L0005: JE L01,#02 [TRUE] L0006 CALL_1N R0081 L0006: GET_PARENT G08 -> -(SP) CALL_2S R0069 ((SP)+) -> G09 JZ G09 [FALSE] L0007 STORE G0a,G00 STORE G00,#13 L0007: CALL_2N R0059 (#07) STORE L00,#01 L0008: JG L00,#64 [TRUE] L0009 RANDOM L00 -> L01 INC L00 JUMP L0008 L0009: JZ G0c [FALSE] L0035 STORE Geb,#05 STORE Gea,#05 JE G06,G0e [TRUE] L0011 JE G0f,#01 [FALSE] L0010 CALL_1N R0052 L0010: STORE G0e,G06 L0011: STOREW #3462,#00,#00 STOREW #3462,#01,#00 STOREW #3462,#02,#00 STOREW #3462,#03,#00 STORE G26,#00 CALL_2N R0005 (#3462) STORE G1e,#00 STORE G1f,#00 STORE G19,#00 STORE G23,#00 STORE G25,G24 STORE G24,#00 LOADW #3462,#00 -> G19 JE G19,#08,#09 [FALSE] L0013 LOADW #3462,#02 -> L00 LOADW #3462,#03 -> -(SP) STOREW #3462,#02,(SP)+ STOREW #3462,#03,L00 JE G19,#08 [FALSE] L0012 STORE G19,#0a JUMP L0013 L0012: STORE G19,#0b L0013: JE G19,#05 [FALSE] L0014 LOADW #3462,#02 -> -(SP) JE (SP)+,G08 [FALSE] L0014 JE G17,G08 [TRUE] L0014 STOREW #3462,#02,G17 STORE G17,G08 STORE G19,#03 L0014: JE G19,#04 [FALSE] L0015 LOADW #3462,#02 -> -(SP) JE (SP)+,G08 [TRUE] L0015 JE G17,G08 [FALSE] L0015 LOADW #3462,#02 -> G17 LOADW #3462,#03 -> -(SP) STOREW #3462,#02,(SP)+ STOREW #3462,#03,G08 STORE G19,#0a L0015: JE G19,#03,#05,#02 [FALSE] L0016 STORE G20,G1c L0016: STORE G1a,#00 STORE G1b,#00 LOADW #3462,#01 -> L00 JL L00,#01 [TRUE] L0017 LOADW #3462,#02 -> G1a L0017: JL L00,#02 [TRUE] L0018 LOADW #3462,#03 -> G1b L0018: STORE G1e,G1a STORE G1f,G1b JE G1a,#01 [FALSE] L0019 STORE G1e,G1c L0019: JE G1b,#01 [FALSE] L0021 JE G1a,#01 [FALSE] L0020 STORE G1f,G1d JUMP L0021 L0020: STORE G1f,G1c L0021: JE G17,G08 [TRUE] L0024 CALL_VS R0049 (G08,#12) -> L01 JZ L01 [FALSE] L0023 CALL_VS R0049 (G17,#12) -> L01 JZ L01 [FALSE] L0023 JE G19,#0108 [FALSE] L0022 STOREW #3462,#03,G17 STORE G17,G08 STORE G19,#02 JUMP L0016 L0022: CALL_VS R0060 (G17,#0103) -> -(SP) JZ (SP)+ [FALSE] L0023 CALL_VN R0205 (#0103,#01,G17) L0023: JUMP L0032 L0024: JZ L00 [TRUE] L0025 JZ G1a [TRUE] L0026 L0025: CALL_1N R0054 JUMP L0032 L0026: STORE G23,#01 LOADW #3482,#00 -> L01 JZ L01 [FALSE] L0027 CALL_VN R0205 (#0106,#02) JUMP L0011 L0027: JE G16,#01 [FALSE] L0028 STORE G16,#00 CALL_VN R0205 (#0106,#01) L0028: STORE L00,G00 STORE L02,#01 L0029: JG L02,L01 [TRUE] L0032 JZ G0c [TRUE] L0030 JUMP L0032 L0030: JE G00,L00 [TRUE] L0031 PRINT "(Since something dramatic has happened, your list of commands has been cut short.) " JUMP L0032 L0031: LOADW #3482,L02 -> L03 CALL_2N R0042 (L03) CALL_2N R0079 (L03) PRINT ": " STORE G1a,L03 STORE G1e,L03 CALL_1N R0054 STORE G1a,#00 STORE G1e,#00 INC L02 JUMP L0029 L0032: JE G24,#01 [FALSE] L0033 STORE G26,#01 L0033: JZ G0c [FALSE] L0034 JZ G26 [FALSE] L0034 CALL_1N R0067 L0034: JUMP L0009 L0035: JE G0c,#02 [TRUE] L0036 CALL_1N R0356 L0036: JZ G0c [FALSE] L0037 JUMP L0011 L0037: PRINT " " SET_TEXT_STYLE BOLDFACE PRINT "***" JE G0c,#01 [FALSE] L0038 CALL_VN R0205 (#0106,#03) L0038: JE G0c,#02 [FALSE] L0039 CALL_VN R0205 (#0106,#04) L0039: JG G0c,#02 [FALSE] L0040 PRINT " " CALL_1N R0361 PRINT " " L0040: PRINT "***" SET_TEXT_STYLE ROMAN PRINT " " CALL_1N R0110 CALL_1N R0050 L0041: CALL_VN R0205 (#0106,#05) L0042: PRINT "> " STORE Gef,#00 STORE Gec,#33a8 STOREB Gec,#01,#00 CALL_1N R0003 READ Gec,#3421 -> Gef LOADW #3421,#01 -> L00 JE L00,"quit","q" [FALSE] L0043 QUIT L0043: JE L00,"restart" [FALSE] L0044 RESTART L0044: JE L00,S108 OR "restore" [FALSE] L0045 CALL_1N R0101 JUMP L0041 L0045: JE L00,"fullscore","full" [FALSE] L0046 JZ #0001 [FALSE] L0046 NEW_LINE CALL_1N R0113 JUMP L0041 L0046: JE G0c,#02 [FALSE] L0047 JE L00,"amusing" [FALSE] L0047 JZ #01 [TRUE] L0047 NEW_LINE CALL_1N R0335 JUMP L0041 L0047: JE L00,"undo" [FALSE] L0052 JZ G2a [FALSE] L0048 CALL_VN R0205 (#0106,#06) JUMP L0041 L0048: JE G2a,#01 [FALSE] L0049 JUMP L0050 L0049: RESTORE_UNDO -> L00 JZ L00 [FALSE] L0051 L0050: CALL_VN R0205 (#0106,#07) L0051: JUMP L0041 L0052: CALL_VN R0205 (#0106,#08) JUMP L0042 Routine R0054, 0 locals JE G26,#01 [TRUE] L0001 CALL_1S R0057 -> -(SP) JZ (SP)+ [FALSE] L0002 L0001: LOADW #3f16,G19 -> -(SP) CALL_1N (SP)+ L0002: RTRUE Routine R0055, 7 locals STORE L05,G45 STORE L06,G46 STORE G45,L00 STORE G46,#00 STORE L02,G17 STORE L03,G18 STORE L04,G62 STORE G62,#06 JZ L01 [FALSE] L0001 STORE G17,G08 JUMP L0002 L0001: STORE G17,L01 L0002: STORE G18,G17 L0003: GET_PARENT G18 -> -(SP) JZ (SP)+ [TRUE] L0004 GET_PARENT G18 -> G18 JUMP L0003 L0004: CALL_VN R0023 (G00,G08,#00) STORE G62,L04 STORE G17,L02 STORE G18,L03 STORE G45,L05 STORE L05,G46 STORE G46,L06 RET L05 Routine R0056, 6 locals STORE L02,G45 STORE L03,G62 STORE L04,G17 STORE L05,G18 STORE G45,L00 JZ L01 [FALSE] L0001 STORE G17,G08 JUMP L0002 L0001: STORE G17,L01 L0002: STORE G18,G17 L0003: GET_PARENT G18 -> -(SP) JZ (SP)+ [TRUE] L0004 GET_PARENT G18 -> G18 JUMP L0003 L0004: STORE G62,#05 CALL_VN R0023 (G18,G17,#00) STORE G45,L02 STORE G62,L03 STORE G17,L04 STORE G18,L05 RTRUE Routine R0057, 0 locals CALL_1S R0364 -> -(SP) JZ (SP)+ [FALSE] RTRUE CALL_VS R0049 (G08,#12) -> -(SP) JZ (SP)+ [FALSE] RTRUE JZ G00 [TRUE] L0001 CALL_VS R0049 (G00,#04) -> -(SP) JZ (SP)+ [FALSE] RTRUE L0001: STORE G62,#03 STORE G45,#00 CALL_VN R0023 (G00,G08,#00) STORE G62,#00 JZ G45 [FALSE] RTRUE JG G1a,#01 [FALSE] L0002 CALL_VS R0049 (G1a,#04) -> -(SP) JZ (SP)+ [FALSE] RTRUE L0002: RFALSE Routine R0058, 0 locals STORE G62,#04 STORE G45,#00 CALL_VN R0023 (G00,G08,#00) STORE G62,#00 JZ G45 [FALSE] RTRUE JZ G00 [TRUE] L0001 CALL_VS R0049 (G00,#05) -> -(SP) JZ (SP)+ [FALSE] RTRUE L0001: JG G1a,#01 [FALSE] L0002 CALL_VS R0049 (G1a,#05) -> -(SP) JZ (SP)+ [FALSE] RTRUE L0002: CALL_1S R0365 -> -(SP) RET_POPPED Routine R0059, 7 locals STORE L03,G1a STORE L04,G1b STORE L05,G19 STORE L06,Geb STORE G1a,L01 STORE G1b,L02 STORE G1e,L01 STORE G1f,L02 STORE G19,L00 JE G26,#01 [TRUE] L0001 CALL_1S R0057 -> -(SP) JZ (SP)+ [FALSE] L0002 L0001: JL G19,#0100 [FALSE] L0002 LOADW #3f16,G19 -> -(SP) CALL_1N (SP)+ STORE Geb,L06 STORE G1a,L03 STORE G1e,L03 STORE G1b,L04 STORE G1f,L04 STORE G19,L05 RFALSE L0002: STORE Geb,L06 STORE G1a,L03 STORE G1e,L03 STORE G1b,L04 STORE G1f,L04 STORE G19,L05 RTRUE Routine R0060, 2 locals STORE G27,L01 CALL_VS R0049 (L00,#06) -> -(SP) RET_POPPED Routine R0061, 7 locals INC G6c L0001: STORE G6f,#00 CALL_1S L01 -> L03 STORE L04,G6e PRINT "--- " PRINT_PADDR L04 PRINT " --- " CALL_2S R0046 (L00) -> -(SP) JE (SP)+,#03 [FALSE] L0002 PRINT_PADDR L00 JUMP L0003 L0002: CALL_1N L00 L0003: PRINT " Type a number from 1 to " PRINT_NUM L03 PRINT ", 0 to redisplay or press ENTER. > " STORE Gef,#00 STORE Gec,#33a8 STOREB Gec,#01,#00 CALL_1N R0003 READ Gec,#3421 -> Gef LOADW #3421,#01 -> L05 JE L05,"quit","q" [TRUE] L0004 LOADB #3421,#01 -> -(SP) JZ (SP)+ [FALSE] L0006 L0004: DEC G6c JG G6c,#00 [TRUE] RFALSE JZ G0c [FALSE] L0005 CALL_2N R0059 (#07) RTRUE L0005: RFALSE L0006: CALL_2S R0041 (#01) -> L05 JZ L05 [FALSE] L0007 JUMP L0001 L0007: JL L05,#01 [TRUE] L0008 JG L05,L03 [FALSE] L0009 L0008: JUMP L0003 L0009: STORE G6f,L05 CALL_1S L02 -> L06 JE L06,#02 [FALSE] L0010 JUMP L0001 L0010: JE L06,#03 [TRUE] RFALSE JUMP L0003 Routine R0062, 11 locals JZ G6b [FALSE] L0001 CALL_VN R0061 (L00,L01,L02) RFALSE L0001: INC G6c STORE G6f,#00 CALL_1S L01 -> L03 STORE L04,G6e STORE L05,G6d STORE L06,#07 L0002: STORE L09,#00 ERASE_WINDOW #ffff ADD L03,#07 -> L07 SPLIT_WINDOW L07 LOADB #00,#21 -> L07 JZ L07 [FALSE] L0003 STORE L07,#50 L0003: SET_WINDOW #01 SET_CURSOR #01,#01 SET_TEXT_STYLE REVERSE STORE Gef,L07 JL Gef,#00 [TRUE] L0005 L0004: PRINT_CHAR ' ' DEC Gef JZ Gef [FALSE] L0004 L0005: DIV L07,#02 -> -(SP) SUB (SP)+,L05 -> L08 SET_CURSOR #01,L08 PRINT_PADDR L04 SET_CURSOR #02,#01 STORE Gef,L07 JL Gef,#00 [TRUE] L0007 L0006: PRINT_CHAR ' ' DEC Gef JZ Gef [FALSE] L0006 L0007: SET_CURSOR #02,#02 PRINT "N = next subject" SUB L07,#0c -> L08 SET_CURSOR #02,L08 PRINT "P = previous" SET_CURSOR #03,#01 STORE Gef,L07 JL Gef,#00 [TRUE] L0009 L0008: PRINT_CHAR ' ' DEC Gef JZ Gef [FALSE] L0008 L0009: SET_CURSOR #03,#02 PRINT "RETURN = read subject" SUB L07,#11 -> L08 SET_CURSOR #03,L08 JE G6c,#01 [FALSE] L0010 PRINT " Q = resume game" JUMP L0011 L0010: PRINT "Q = previous menu" L0011: SET_TEXT_STYLE ROMAN SET_CURSOR #05,#02 LOADW #00,#08 -> Gef OR #02,Gef -> Gef STOREW #00,#08,Gef CALL_2S R0046 (L00) -> -(SP) JE (SP)+,#03 [FALSE] L0012 PRINT_PADDR L00 JUMP L0013 L0012: CALL_1N L00 L0013: JE L06,L09 [TRUE] L0015 JG L09,#00 [FALSE] L0014 SET_CURSOR L09,#04 PRINT " " L0014: SET_CURSOR L06,#04 PRINT ">" L0015: STORE L09,L06 READ_CHAR #01,#00,#00 -> L0a JE L0a,#4e,#6e,#82 [FALSE] L0017 INC L06 ADD #07,L03 -> -(SP) JE L06,(SP)+ [FALSE] L0016 STORE L06,#07 L0016: JUMP L0013 L0017: JE L0a,#50,#70,#81 [FALSE] L0019 DEC L06 JE L06,#06 [FALSE] L0018 ADD #06,L03 -> L06 L0018: JUMP L0013 L0019: JE L0a,#51,#71,#1b [TRUE] L0020 JE L0a,#83 [FALSE] L0021 L0020: JUMP L0028 L0021: JE L0a,#0a,#0d,#84 [FALSE] L0027 SET_WINDOW #00 LOADW #00,#08 -> Gef AND #fffd,Gef -> Gef STOREW #00,#08,Gef NEW_LINE NEW_LINE NEW_LINE SUB L06,#06 -> G6f CALL_1N L01 ERASE_WINDOW #ffff SPLIT_WINDOW #01 LOADB #00,#21 -> L07 JZ L07 [FALSE] L0022 STORE L07,#50 L0022: SET_WINDOW #01 SET_CURSOR #01,#01 SET_TEXT_STYLE REVERSE STORE Gef,L07 JL Gef,#00 [TRUE] L0024 L0023: PRINT_CHAR ' ' DEC Gef JZ Gef [FALSE] L0023 L0024: DIV L07,#02 -> -(SP) SUB (SP)+,G6d -> L08 SET_CURSOR #01,L08 PRINT_PADDR G6e SET_TEXT_STYLE ROMAN SET_WINDOW #00 NEW_LINE CALL_1S L02 -> L07 JE L07,#02 [FALSE] L0025 JUMP L0002 L0025: JE L07,#03 [FALSE] L0026 JUMP L0028 L0026: PRINT " [Please press SPACE.] " READ_CHAR #01,#00,#00 -> L0a JUMP L0002 L0027: JUMP L0013 L0028: DEC G6c JG G6c,#00 [TRUE] RFALSE LOADW #00,#08 -> Gef AND #fffd,Gef -> Gef STOREW #00,#08,Gef SET_CURSOR #01,#01 ERASE_WINDOW #ffff SET_WINDOW #00 NEW_LINE NEW_LINE NEW_LINE JZ G0c [FALSE] L0029 CALL_2N R0059 (#07) RTRUE L0029: RTRUE Routine R0063, 3 locals STORE L02,#00 L0001: JL L02,G70 [FALSE] L0004 LOADW #3328,L02 -> -(SP) JE (SP)+,L00 [FALSE] L0003 LOADB #3368,L02 -> -(SP) JE (SP)+,#02 [FALSE] L0002 CALL_VN R0083 (#06,L00) L0002: RFALSE L0003: INC L02 JUMP L0001 L0004: STORE L02,#00 L0005: JL L02,G70 [FALSE] L0007 LOADW #3328,L02 -> -(SP) JZ (SP)+ [FALSE] L0006 JUMP L0008 L0006: INC L02 JUMP L0005 L0007: STORE L02,G70 INC G70 MUL L02,#02 -> -(SP) JL (SP)+,#40 [TRUE] L0008 CALL_2N R0083 (#04) L0008: GET_PROP_ADDR L00,#19 -> -(SP) JZ (SP)+ [FALSE] L0009 CALL_VN R0083 (#05,L00) L0009: STOREW #3328,L02,L00 STOREB #3368,L02,#01 PUT_PROP L00,#19,L01 RTRUE Routine R0064, 2 locals STORE L01,#00 L0001: JL L01,G70 [FALSE] L0003 LOADW #3328,L01 -> -(SP) JE (SP)+,L00 [FALSE] L0002 JUMP L0004 L0002: INC L01 JUMP L0001 L0003: RFALSE L0004: GET_PROP_ADDR L00,#19 -> -(SP) JZ (SP)+ [FALSE] L0005 CALL_VN R0083 (#05,L00) L0005: STOREW #3328,L01,#00 PUT_PROP L00,#19,#00 RTRUE Routine R0065, 2 locals STORE L01,#00 L0001: JL L01,G70 [FALSE] L0004 LOADW #3328,L01 -> -(SP) JE (SP)+,L00 [FALSE] L0003 LOADB #3368,L01 -> -(SP) JE (SP)+,#01 [FALSE] L0002 CALL_VN R0083 (#06,L00) L0002: RFALSE L0003: INC L01 JUMP L0001 L0004: STORE L01,#00 L0005: JL L01,G70 [FALSE] L0007 LOADW #3328,L01 -> -(SP) JZ (SP)+ [FALSE] L0006 JUMP L0008 L0006: INC L01 JUMP L0005 L0007: STORE L01,G70 INC G70 MUL L01,#02 -> -(SP) JL (SP)+,#40 [TRUE] L0008 CALL_2N R0083 (#04) L0008: STOREW #3328,L01,L00 STOREB #3368,L01,#02 RTRUE Routine R0066, 2 locals STORE L01,#00 L0001: JL L01,G70 [FALSE] L0003 LOADW #3328,L01 -> -(SP) JE (SP)+,L00 [FALSE] L0002 JUMP L0004 L0002: INC L01 JUMP L0001 L0003: RFALSE L0004: STOREW #3328,L01,#00 RTRUE Routine R0067, 2 locals INC G07 JE G03,#ffff [TRUE] L0003 JL G04,#00 [TRUE] L0001 ADD G03,G04 -> G03 JUMP L0002 L0001: DEC G05 JZ G05 [FALSE] L0002 INC G03 SUB #00,G04 -> G05 L0002: MOD G03,#05a0 -> G03 L0003: STORE L00,#00 L0004: JZ G0c [FALSE] L0008 JL L00,G70 [FALSE] L0008 LOADW #3328,L00 -> L01 JZ L01 [TRUE] L0007 LOADB #3368,L00 -> -(SP) JE (SP)+,#02 [FALSE] L0005 CALL_VN R0049 (L01,#1b) JUMP L0007 L0005: GET_PROP L01,#19 -> -(SP) JZ (SP)+ [FALSE] L0006 CALL_2N R0064 (L01) CALL_VN R0049 (L01,#1b) JUMP L0007 L0006: GET_PROP L01,#19 -> -(SP) SUB (SP)+,#01 -> -(SP) PUT_PROP L01,#19,(SP)+ L0007: INC L00 JUMP L0004 L0008: JZ G0c [FALSE] L0009 STORE G62,#02 STORE G31,#00 CALL_2N R0026 (G00) CALL_VN R0023 (G00,G08,#00) STORE G62,#00 L0009: JZ G0c [FALSE] L0010 CALL_1N R0360 L0010: JZ G0c [FALSE] L0014 CALL_1N R0068 GET_CHILD G08 -> -(SP) [FALSE] L0011 L0011: PULL L00 JZ L00 [TRUE] L0014 L0012: TEST_ATTR L00,#0c [TRUE] L0013 SET_ATTR L00,#0c TEST_ATTR L00,#12 [FALSE] L0013 ADD G06,#0004 -> G06 ADD G11,#0004 -> G11 L0013: GET_SIBLING L00 -> L00 [TRUE] L0012 L0014: RTRUE Routine R0068, 2 locals STORE L01,G09 GET_PARENT G08 -> -(SP) CALL_2S R0069 ((SP)+) -> G09 JZ L01 [FALSE] L0001 JE G09,#01 [FALSE] L0001 STORE G00,G0a JZ L00 [FALSE] L0001 CALL_2N R0059 (#07) L0001: JE L01,#01 [FALSE] L0002 JZ G09 [FALSE] L0002 STORE G0a,G00 STORE G00,#13 JZ L00 [FALSE] L0002 CALL_1N R0142 CALL_VS R0205 (#0106,#09) -> -(SP) RET_POPPED L0002: JZ L01 [FALSE] L0003 JZ G09 [FALSE] L0003 STORE G00,#13 L0003: RTRUE Routine R0069, 2 locals JZ L00 [TRUE] RFALSE TEST_ATTR L00,#09 [TRUE] RTRUE GET_CHILD L00 -> -(SP) [FALSE] L0001 L0001: PULL L01 JZ L01 [TRUE] L0003 L0002: CALL_2S R0070 (L01) -> -(SP) JE (SP)+,#01 [TRUE] RTRUE GET_SIBLING L01 -> L01 [TRUE] L0002 L0003: TEST_ATTR L00,#06 [TRUE] L0004 CALL_2S R0024 (L00) -> -(SP) JE (SP)+,#01 [FALSE] L0005 L0004: GET_PARENT L00 -> -(SP) CALL_2S R0069 ((SP)+) -> -(SP) RET_POPPED L0005: RFALSE Routine R0070, 3 locals JZ L00 [TRUE] RFALSE TEST_ATTR L00,#09 [TRUE] RTRUE TEST_ATTR L00,#06 [TRUE] L0001 CALL_2S R0024 (L00) -> -(SP) JE (SP)+,#01 [FALSE] L0004 L0001: GET_CHILD L00 -> -(SP) [FALSE] L0002 L0002: PULL L00 JZ L00 [TRUE] L0004 L0003: CALL_2S R0070 (L00) -> -(SP) JE (SP)+,#01 [TRUE] RTRUE GET_SIBLING L00 -> L00 [TRUE] L0003 L0004: GET_PROP_ADDR L00,#0c -> L02 GET_PARENT L00 -> -(SP) JZ (SP)+ [TRUE] L0008 JZ L02 [TRUE] L0008 LOADW L02,#00 -> -(SP) JG (SP)+,G14 [FALSE] L0005 STORE G67,#00 STORE G66,#01 CALL_VN R0049 (L00,#0c) STORE G66,#00 JE G67,#01 [TRUE] RTRUE JUMP L0008 L0005: STORE L01,#00 L0006: GET_PROP_ADDR L00,#0c -> Gef JZ Gef [TRUE] L0007 GET_PROP_LEN Gef -> Gef L0007: PUSH Gef MUL #02,L01 -> -(SP) JL (SP)+,(SP)+ [FALSE] L0008 LOADW L02,L01 -> -(SP) CALL_2S R0070 ((SP)+) -> -(SP) JE (SP)+,#01 [TRUE] RTRUE INC L01 JUMP L0006 L0008: RFALSE Routine R0071, 1 local JZ L00 [FALSE] L0001 PRINT "is unset" JUMP L0002 L0001: PRINT "means " CALL_2N R0077 (L00) L0002: RTRUE Routine R0072, 0 locals Action routine for: "nouns" PRINT "At the moment, "it" " CALL_2N R0071 (G49) PRINT ", "him" " CALL_2N R0071 (G4a) JE G08,#14 [FALSE] L0001 PRINT " and" JUMP L0002 L0001: PRINT "," L0002: PRINT " "her" " CALL_2N R0071 (G4b) JE G08,#14 [FALSE] L0003 PRINT_RET "." L0003: PRINT " and "me" means " PRINT_OBJ G08 PRINT_RET "." Routine R0073, 3 locals GET_PROP_ADDR L00,#1a -> -(SP) JZ (SP)+ [FALSE] L0001 CALL_VS R0083 (#07,L00) -> -(SP) RET_POPPED L0001: JE G17,G08 [FALSE] L0002 STORE G17,L00 L0002: CLEAR_ATTR G08,#17 CLEAR_ATTR G08,#02 STORE L02,L00 L0003: GET_PARENT L02 -> -(SP) JZ (SP)+ [TRUE] L0005 TEST_ATTR L02,#00 [FALSE] L0004 SET_ATTR L02,#17 L0004: GET_PARENT L02 -> L02 JUMP L0003 L0005: JE G08,#14 [FALSE] L0006 PUT_PROP G08,#1e,S023 OR "me" L0006: PUT_PROP G08,#1a,G0a STORE G08,L00 JE G08,#14 [FALSE] L0007 PUT_PROP G08,#1e,#ffff L0007: SET_ATTR G08,#17 SET_ATTR G08,#02 SET_ATTR G08,#00 SET_ATTR G08,#10 STORE L02,G08 L0008: GET_PARENT L02 -> -(SP) JZ (SP)+ [TRUE] L0009 GET_PARENT L02 -> L02 JUMP L0008 L0009: STORE G00,L02 GET_PROP G08,#1a -> G0a JZ G0a [FALSE] L0010 STORE G0a,G00 L0010: GET_PARENT G08 -> -(SP) CALL_2S R0069 ((SP)+) -> G09 JZ G09 [FALSE] L0011 STORE G00,#13 L0011: STORE G0b,L01 RTRUE Routine R0074, 2 locals SUB L00,#01 -> -(SP) LOADW #00,#05 -> -(SP) STOREW (SP)+,(SP)+,L01 RTRUE Routine R0075, 1 local LOADW L00,#00 -> -(SP) JZ (SP)+ [FALSE] L0001 CALL_2S R0083 (#08) -> -(SP) RET_POPPED L0001: LOADW L00,#00 -> -(SP) RANDOM (SP)+ -> -(SP) LOADW L00,(SP)+ -> -(SP) RET_POPPED Routine R0076, 1 local TEST_ATTR L00,#10 [TRUE] L0001 CALL_VN R0047 (L00,#16,#01) PRINT " " L0001: CALL_2N R0079 (L00) RTRUE Routine R0077, 1 local TEST_ATTR L00,#10 [TRUE] L0001 PRINT "the " L0001: CALL_2N R0079 (L00) RTRUE Routine R0078, 1 local TEST_ATTR L00,#10 [TRUE] L0001 PRINT "The " L0001: CALL_2N R0079 (L00) RTRUE Routine R0079, 1 local JZ L00 [FALSE] L0001 PRINT "nothing" RTRUE L0001: JG L00,G14 [TRUE] L0002 JL L00,#00 [FALSE] L0005 L0002: CALL_2S R0046 (L00) -> -(SP) PULL Gef JE Gef,#02 [FALSE] L0003 PRINT "" RTRUE L0003: JE Gef,#03 [FALSE] L0004 PRINT "" RTRUE L0004: PRINT "" RTRUE L0005: JE L00,G08 [FALSE] L0006 PRINT "yourself" RTRUE L0006: GET_PROP_ADDR L00,#1e -> -(SP) JZ (SP)+ [TRUE] L0007 CALL_VS R0047 (L00,#1e,#01) -> -(SP) JZ (SP)+ [FALSE] RTRUE L0007: PRINT_OBJ L00 RTRUE Routine R0080, 1 local STORE Gef,L00 JE Gef,#07 [FALSE] L0001 PRINT "north" JUMP L0013 L0001: JE Gef,#08 [FALSE] L0002 PRINT "south" JUMP L0013 L0002: JE Gef,#09 [FALSE] L0003 PRINT "east" JUMP L0013 L0003: JE Gef,#0a [FALSE] L0004 PRINT "west" JUMP L0013 L0004: JE Gef,#0b [FALSE] L0005 PRINT "northeast" JUMP L0013 L0005: JE Gef,#0d [FALSE] L0006 PRINT "northwest" JUMP L0013 L0006: JE Gef,#0c [FALSE] L0007 PRINT "southeast" JUMP L0013 L0007: JE Gef,#0e [FALSE] L0008 PRINT "southwest" JUMP L0013 L0008: JE Gef,#0f [FALSE] L0009 PRINT "up" JUMP L0013 L0009: JE Gef,#10 [FALSE] L0010 PRINT "down" JUMP L0013 L0010: JE Gef,#11 [FALSE] L0011 PRINT "in" JUMP L0013 L0011: JE Gef,#12 [FALSE] L0012 PRINT "out" JUMP L0013 L0012: CALL_VS R0083 (#09,L00) -> -(SP) RET_POPPED L0013: RTRUE Routine R0081, 1 local JZ #4c7d [TRUE] L0001 SET_TEXT_STYLE BOLDFACE PRINT_PADDR S001 SET_TEXT_STYLE ROMAN L0001: JZ #4c80 [TRUE] L0002 PRINT_PADDR S002 L0002: PRINT "Release " LOADW #00,#01 -> -(SP) AND (SP)+,#03ff -> -(SP) PRINT_NUM (SP)+ PRINT " / Serial number " STORE L00,#12 L0003: JL L00,#18 [FALSE] L0004 LOADB #00,L00 -> -(SP) PRINT_CHAR (SP)+ INC L00 JUMP L0003 L0004: PRINT " / Inform v" LOADB #00,#3c -> Gef PRINT_CHAR Gef LOADB #00,#3d -> Gef PRINT_CHAR Gef LOADB #00,#3e -> Gef PRINT_CHAR Gef LOADB #00,#3f -> Gef PRINT_CHAR Gef PRINT " Library " PRINT_PADDR S004 NEW_LINE JG G15,#00 [FALSE] L0005 PRINT "Standard interpreter " DIV G15,#0100 -> -(SP) PRINT_NUM (SP)+ PRINT "." MOD G15,#0100 -> -(SP) PRINT_NUM (SP)+ PRINT " " L0005: RTRUE Routine R0082, 0 locals Action routine for: "version" CALL_1N R0081 PRINT "Interpreter " LOADB #00,#1e -> -(SP) PRINT_NUM (SP)+ PRINT " Version " LOADB #00,#1f -> -(SP) PRINT_CHAR (SP)+ PRINT " / " PRINT "Library serial number " PRINT_PADDR S003 PRINT " " RTRUE Routine R0083, 3 locals PRINT "** Library error " PRINT_NUM L00 PRINT " (" PRINT_NUM L01 PRINT "," PRINT_NUM L02 PRINT_RET ") **" Routine R0084, 3 locals JZ L00 [FALSE] L0001 PRINT "zero" RFALSE L0001: JL L00,#00 [FALSE] L0002 PRINT "minus " SUB #00,L00 -> L00 L0002: JL L00,#03e8 [TRUE] L0003 DIV L00,#03e8 -> -(SP) CALL_2N R0084 ((SP)+) PRINT " thousand" MOD L00,#03e8 -> L00 STORE L02,#01 L0003: JL L00,#64 [TRUE] L0005 JE L02,#01 [FALSE] L0004 PRINT ", " L0004: DIV L00,#64 -> -(SP) CALL_2N R0084 ((SP)+) PRINT " hundred" MOD L00,#64 -> L00 STORE L02,#01 L0005: JZ L00 [TRUE] RFALSE JE L02,#01 [FALSE] L0006 PRINT " and " L0006: JL L00,#0a [FALSE] L0007 CALL_2N R0085 (L00) RFALSE L0007: JL L00,#14 [TRUE] L0016 DIV L00,#0a -> L01 JE L01,#02 [FALSE] L0008 PRINT "twenty" L0008: JE L01,#03 [FALSE] L0009 PRINT "thirty" L0009: JE L01,#04 [FALSE] L0010 PRINT "forty" L0010: JE L01,#05 [FALSE] L0011 PRINT "fifty" L0011: JE L01,#06 [FALSE] L0012 PRINT "sixty" L0012: JE L01,#07 [FALSE] L0013 PRINT "seventy" L0013: JE L01,#08 [FALSE] L0014 PRINT "eighty" L0014: JE L01,#09 [FALSE] L0015 PRINT "ninety" L0015: MOD L00,#0a -> -(SP) JZ (SP)+ [TRUE] RFALSE PRINT "-" MOD L00,#0a -> -(SP) CALL_2N R0085 ((SP)+) RFALSE L0016: JE L00,#0a [FALSE] L0017 PRINT "ten" RFALSE L0017: JE L00,#0b [FALSE] L0018 PRINT "eleven" RFALSE L0018: JE L00,#0c [FALSE] L0019 PRINT "twelve" RFALSE L0019: JE L00,#0d [FALSE] L0020 PRINT "thirteen" RFALSE L0020: JE L00,#0e [FALSE] L0021 PRINT "fourteen" RFALSE L0021: JE L00,#0f [FALSE] L0022 PRINT "fifteen" RFALSE L0022: JE L00,#10 [FALSE] L0023 PRINT "sixteen" RFALSE L0023: JE L00,#11 [FALSE] L0024 PRINT "seventeen" RFALSE L0024: JE L00,#12 [FALSE] L0025 PRINT "eighteen" RFALSE L0025: PRINT "nineteen" RTRUE Routine R0085, 1 local JE L00,#01 [FALSE] L0001 PRINT "one" RFALSE L0001: JE L00,#02 [FALSE] L0002 PRINT "two" RFALSE L0002: JE L00,#03 [FALSE] L0003 PRINT "three" RFALSE L0003: JE L00,#04 [FALSE] L0004 PRINT "four" RFALSE L0004: JE L00,#05 [FALSE] L0005 PRINT "five" RFALSE L0005: JE L00,#06 [FALSE] L0006 PRINT "six" RFALSE L0006: JE L00,#07 [FALSE] L0007 PRINT "seven" RFALSE L0007: JE L00,#08 [FALSE] L0008 PRINT "eight" RFALSE L0008: JE L00,#09 [FALSE] L0009 PRINT "nine" RFALSE L0009: RTRUE Routine R0086, 2 locals GET_SIBLING L00 -> L00 [FALSE] L0001 L0001: JZ G73 [TRUE] L0014 AND G72,#0200 -> -(SP) JZ (SP)+ [TRUE] L0006 JZ L01 [FALSE] L0006 L0002: JZ L00 [TRUE] L0005 GET_PROP L00,#0e -> -(SP) JE (SP)+,G73 [FALSE] L0003 TEST_ATTR L00,#19 [TRUE] L0005 L0003: GET_SIBLING L00 -> L00 [FALSE] L0004 L0004: JUMP L0002 L0005: RET L00 L0006: AND G72,#0800 -> -(SP) JZ (SP)+ [TRUE] L0011 L0007: JZ L00 [TRUE] L0010 TEST_ATTR L00,#02 [TRUE] L0008 TEST_ATTR L00,#11 [TRUE] L0008 GET_PROP L00,#0e -> -(SP) JE (SP)+,G73 [TRUE] L0010 L0008: GET_SIBLING L00 -> L00 [FALSE] L0009 L0009: JUMP L0007 L0010: RET L00 L0011: JZ L00 [TRUE] L0013 GET_PROP L00,#0e -> -(SP) JE (SP)+,G73 [TRUE] L0013 GET_SIBLING L00 -> L00 [FALSE] L0012 L0012: JUMP L0011 L0013: RET L00 L0014: AND G72,#0200 -> -(SP) JZ (SP)+ [TRUE] L0018 JZ L01 [FALSE] L0018 L0015: JZ L00 [TRUE] L0017 TEST_ATTR L00,#19 [TRUE] L0017 GET_SIBLING L00 -> L00 [FALSE] L0016 L0016: JUMP L0015 L0017: RET L00 L0018: AND G72,#0800 -> -(SP) JZ (SP)+ [TRUE] L0022 L0019: JZ L00 [TRUE] L0022 TEST_ATTR L00,#02 [TRUE] L0020 TEST_ATTR L00,#11 [FALSE] L0022 L0020: GET_SIBLING L00 -> L00 [FALSE] L0021 L0021: JUMP L0019 L0022: RET L00 Routine R0087, 1 local AND G72,#20 -> -(SP) JZ (SP)+ [FALSE] RTRUE AND G72,#10 -> -(SP) JZ (SP)+ [TRUE] RFALSE TEST_ATTR L00,#17 [TRUE] RTRUE TEST_ATTR L00,#14 [TRUE] RTRUE TEST_ATTR L00,#03 [FALSE] L0001 TEST_ATTR L00,#0e [TRUE] RTRUE L0001: RFALSE Routine R0088, 2 locals GET_CHILD L00 -> -(SP) [FALSE] L0001 L0001: JZ (SP)+ [TRUE] L0002 CALL_2S R0087 (L00) -> -(SP) JZ (SP)+ [FALSE] RFALSE L0002: GET_CHILD L01 -> -(SP) [FALSE] L0003 L0003: JZ (SP)+ [TRUE] L0004 CALL_2S R0087 (L01) -> -(SP) JZ (SP)+ [FALSE] RFALSE L0004: AND G72,#84 -> -(SP) JZ (SP)+ [TRUE] L0008 TEST_ATTR L00,#1a [TRUE] L0005 TEST_ATTR L01,#1a [TRUE] RFALSE L0005: TEST_ATTR L01,#1a [TRUE] L0006 TEST_ATTR L00,#1a [TRUE] RFALSE L0006: TEST_ATTR L00,#09 [TRUE] L0007 TEST_ATTR L01,#09 [TRUE] RFALSE L0007: TEST_ATTR L01,#09 [TRUE] L0008 TEST_ATTR L00,#09 [TRUE] RFALSE L0008: CALL_VS R0015 (L00,L01) -> -(SP) RET_POPPED Routine R0089, 2 locals L0001: GET_CHILD L00 -> -(SP) [FALSE] L0002 L0002: JZ (SP)+ [TRUE] L0008 GET_CHILD L00 -> -(SP) [FALSE] L0003 L0003: GET_PROP (SP)+,#0e -> -(SP) JE (SP)+,L01 [TRUE] L0005 GET_CHILD L00 -> -(SP) [FALSE] L0004 L0004: INSERT_OBJ (SP)+,"outside" JUMP L0007 L0005: GET_CHILD L00 -> -(SP) [FALSE] L0006 L0006: INSERT_OBJ (SP)+,"inside" L0007: JUMP L0001 L0008: GET_CHILD "inside" -> -(SP) [FALSE] L0009 L0009: JZ (SP)+ [TRUE] L0011 GET_CHILD "inside" -> -(SP) [FALSE] L0010 L0010: INSERT_OBJ (SP)+,L00 JUMP L0008 L0011: GET_CHILD "outside" -> -(SP) [FALSE] L0012 L0012: JZ (SP)+ [TRUE] L0014 GET_CHILD "outside" -> -(SP) [FALSE] L0013 L0013: INSERT_OBJ (SP)+,L00 JUMP L0011 L0014: RTRUE Routine R0090, 4 locals L0001: STORE L01,L00 JUMP L0003 L0002: GET_SIBLING L01 -> L01 [FALSE] L0003 L0003: JZ L01 [TRUE] L0013 GET_PROP L01,#0e -> L02 JZ L02 [TRUE] L0012 GET_SIBLING L01 -> L01 [FALSE] L0004 L0004: JZ L01 [TRUE] L0006 GET_PROP L01,#0e -> -(SP) JE (SP)+,L02 [FALSE] L0006 GET_SIBLING L01 -> L01 [FALSE] L0005 L0005: JUMP L0004 L0006: JZ L01 [TRUE] RFALSE GET_SIBLING L01 -> L03 [FALSE] L0007 L0007: JUMP L0009 L0008: GET_SIBLING L03 -> L03 [FALSE] L0009 L0009: JZ L03 [TRUE] L0012 GET_PROP L03,#0e -> -(SP) JE (SP)+,L02 [FALSE] L0011 GET_PARENT L00 -> -(SP) CALL_VN R0089 ((SP)+,L02) GET_PARENT L00 -> -(SP) GET_CHILD (SP)+ -> L00 [FALSE] L0010 L0010: JUMP L0001 L0011: JUMP L0008 L0012: JUMP L0002 L0013: RTRUE Routine R0091, 3 locals GET_PARENT L00 -> -(SP) GET_CHILD (SP)+ -> -(SP) [FALSE] L0001 L0001: JE L00,(SP)+ [FALSE] L0002 CALL_2N R0090 (L00) GET_PARENT L00 -> -(SP) GET_CHILD (SP)+ -> L00 [FALSE] L0002 L0002: STORE G72,L01 AND L01,#0200 -> -(SP) JZ (SP)+ [TRUE] L0006 L0003: JZ L00 [TRUE] L0005 TEST_ATTR L00,#19 [TRUE] L0005 GET_SIBLING L00 -> L00 [FALSE] L0004 L0004: JUMP L0003 L0005: JUMP L0010 L0006: AND G72,#0800 -> -(SP) JZ (SP)+ [TRUE] L0010 L0007: JZ L00 [TRUE] L0010 TEST_ATTR L00,#02 [TRUE] L0008 TEST_ATTR L00,#11 [FALSE] L0010 L0008: GET_SIBLING L00 -> L00 [FALSE] L0009 L0009: JUMP L0007 L0010: JZ L00 [TRUE] RFALSE STORE G76,#00 CALL_VN R0092 (L00,L02) RTRUE Routine R0092, 15 locals JG L01,#00 [FALSE] L0002 GET_PARENT L00 -> -(SP) GET_CHILD (SP)+ -> -(SP) [FALSE] L0001 L0001: JE L00,(SP)+ [FALSE] L0002 CALL_2N R0090 (L00) GET_PARENT L00 -> -(SP) GET_CHILD (SP)+ -> L00 [FALSE] L0002 L0002: ADD #36a7,L02 -> L03 ADD #3627,L02 -> L04 STORE L05,L00 STORE L06,#00 JUMP L0004 L0003: CALL_VS R0086 (L05,L01) -> L05 INC L06 L0004: JZ L05 [TRUE] L0006 ADD L06,L02 -> -(SP) JL (SP)+,#80 [FALSE] L0006 STOREB L03,L06,#00 GET_PROP L05,#10 -> -(SP) JZ (SP)+ [TRUE] L0005 INC L07 L0005: JUMP L0003 L0006: AND G72,#0400 -> -(SP) JZ (SP)+ [TRUE] L0011 JE L06,#01 [FALSE] L0007 PRINT " is" JUMP L0008 L0007: PRINT " are" L0008: AND G72,#01 -> -(SP) JZ (SP)+ [TRUE] L0009 PRINT ": " JUMP L0010 L0009: PRINT_CHAR ' ' L0010: SUB G72,#0400 -> G72 L0011: ADD L02,L06 -> -(SP) ADD (SP)+,#01 -> L02 JL L07,#02 [FALSE] L0012 JUMP L0063 L0012: STORE L0b,#01 STORE L05,L00 STORE L07,#00 JUMP L0014 L0013: CALL_VS R0086 (L05,L01) -> L05 INC L07 L0014: JL L07,L06 [FALSE] L0020 LOADB L03,L07 -> -(SP) JZ (SP)+ [FALSE] L0019 STOREB L03,L07,L0b STOREB L04,L0b,#01 CALL_VS R0086 (L05,L01) -> L09 ADD L07,#01 -> L0a JUMP L0016 L0015: CALL_VS R0086 (L09,L01) -> L09 INC L0a L0016: JZ L09 [TRUE] L0018 JL L0a,L06 [FALSE] L0018 LOADB L03,L0a -> -(SP) JZ (SP)+ [FALSE] L0017 GET_PROP L05,#10 -> -(SP) JZ (SP)+ [TRUE] L0017 GET_PROP L09,#10 -> -(SP) JZ (SP)+ [TRUE] L0017 CALL_VS R0088 (L05,L09) -> -(SP) JE (SP)+,#01 [FALSE] L0017 LOADB L04,L0b -> -(SP) ADD (SP)+,#01 -> -(SP) STOREB L04,L0b,(SP)+ STOREB L03,L0a,L0b L0017: JUMP L0015 L0018: INC L0b L0019: JUMP L0013 L0020: DEC L0b STORE L05,#01 STORE L06,L00 STORE L07,#00 JUMP L0022 L0021: INC L05 INC L0d L0022: JG L05,L0b [TRUE] L0026 L0023: LOADB L03,L07 -> -(SP) JE (SP)+,L05 [TRUE] L0024 SUB #00,L05 -> -(SP) LOADB L03,L07 -> -(SP) JE (SP)+,(SP)+ [TRUE] L0024 INC L07 CALL_VS R0086 (L06,L01) -> L06 JUMP L0023 L0024: LOADB L04,L05 -> L0a GET_PROP L06,#0e -> -(SP) JE (SP)+,#00,G73 [TRUE] L0025 GET_PROP L06,#0e -> -(SP) CALL_2S R0046 ((SP)+) -> -(SP) JE (SP)+,#02,#03 [FALSE] L0025 GET_PROP L06,#0e -> -(SP) JE (SP)+,L0e [FALSE] L0025 DEC L0d L0025: GET_PROP L06,#0e -> L0e JUMP L0021 L0026: DEC L0d STORE L05,#01 STORE L06,L00 STORE L07,#00 STORE L0e,#00 JUMP L0028 L0027: INC L05 DEC L0d L0028: JL L0d,#00 [TRUE] L0062 L0029: LOADB L03,L07 -> -(SP) JE (SP)+,L05 [TRUE] L0030 SUB #00,L05 -> -(SP) LOADB L03,L07 -> -(SP) JE (SP)+,(SP)+ [TRUE] L0030 INC L07 CALL_VS R0086 (L06,L01) -> L06 JUMP L0029 L0030: GET_PROP L06,#0e -> -(SP) JE (SP)+,#00,G73 [TRUE] L0051 GET_PROP L06,#0e -> -(SP) JE (SP)+,L0e [FALSE] L0031 INC L0d JUMP L0061 L0031: CALL_VS R0086 (L06,L01) -> L08 JZ L08 [TRUE] L0032 GET_PROP L06,#0e -> -(SP) GET_PROP L08,#0e -> -(SP) JE (SP)+,(SP)+ [TRUE] L0033 L0032: JUMP L0051 L0033: GET_PROP L06,#0e -> -(SP) CALL_2S R0046 ((SP)+) -> L08 JE L08,#02,#03 [FALSE] L0051 STORE L0c,L06 STORE G75,#01 STORE L09,L07 STORE L0a,L05 L0034: JL L0a,L0b [FALSE] L0038 GET_PROP L06,#0e -> -(SP) GET_PROP L0c,#0e -> -(SP) JE (SP)+,(SP)+ [FALSE] L0038 INC L0a L0035: LOADB L03,L09 -> -(SP) JE (SP)+,L0a [TRUE] L0036 SUB #00,L0a -> -(SP) LOADB L03,L09 -> -(SP) JE (SP)+,(SP)+ [TRUE] L0036 INC L09 CALL_VS R0086 (L0c,L01) -> L0c JUMP L0035 L0036: GET_PROP L06,#0e -> -(SP) GET_PROP L0c,#0e -> -(SP) JE (SP)+,(SP)+ [FALSE] L0037 INC G75 L0037: JUMP L0034 L0038: JE G75,#01 [FALSE] L0039 JUMP L0051 L0039: AND G72,#02 -> -(SP) JZ (SP)+ [TRUE] L0041 ADD L01,G76 -> -(SP) MUL #02,(SP)+ -> -(SP) PULL Gef JL Gef,#00 [TRUE] L0041 L0040: PRINT_CHAR ' ' DEC Gef JZ Gef [FALSE] L0040 L0041: JE L08,#03 [FALSE] L0045 STORE L0c,#00 STORE L09,#00 L0042: JL L09,G75 [FALSE] L0043 ADD L09,L05 -> -(SP) LOADB L04,(SP)+ -> -(SP) ADD L0c,(SP)+ -> L0c INC L09 JUMP L0042 L0043: CALL_2N R0084 (L0c) PRINT " " GET_PROP L06,#0e -> -(SP) PRINT_PADDR (SP)+ AND G72,#08 -> -(SP) JZ (SP)+ [TRUE] L0044 PRINT " (" L0044: AND G72,#02 -> -(SP) JZ (SP)+ [TRUE] L0045 PRINT ": " L0045: STORE L0c,G72 JE L08,#03 [TRUE] L0046 STORE G71,#01 STORE G45,L06 ADD L01,G76 -> G46 CALL_VS R0049 (L06,#0e) -> -(SP) JE (SP)+,#01 [FALSE] L0046 JUMP L0049 L0046: GET_PROP L06,#0e -> G73 STORE G74,L06 INC G76 CALL_VN R0092 (L06,L01,L02) DEC G76 STORE G73,#00 STORE G74,#00 JE L08,#03 [FALSE] L0048 AND L0c,#08 -> -(SP) JZ (SP)+ [TRUE] L0047 PRINT ")" L0047: JUMP L0049 L0048: STORE G71,#02 STORE G45,L06 ADD L01,G76 -> G46 CALL_VN R0049 (L06,#0e) L0049: AND L0c,#01 -> -(SP) JZ (SP)+ [TRUE] L0050 AND G72,#01 -> -(SP) JZ (SP)+ [FALSE] L0050 NEW_LINE L0050: STORE G72,L0c GET_PROP L06,#0e -> L0e JUMP L0059 L0051: CALL_VS R0093 (L06,L01) -> -(SP) JE (SP)+,#01 [FALSE] L0052 JUMP L0061 L0052: LOADB L04,L05 -> -(SP) JE (SP)+,#01 [FALSE] L0056 AND G72,#1000 -> -(SP) JZ (SP)+ [TRUE] L0053 CALL_2N R0079 (L06) JUMP L0055 L0053: AND G72,#0100 -> -(SP) JZ (SP)+ [TRUE] L0054 CALL_2N R0077 (L06) JUMP L0055 L0054: CALL_2N R0076 (L06) L0055: JUMP L0058 L0056: AND G72,#0100 -> -(SP) JZ (SP)+ [TRUE] L0057 PRINT "the " L0057: LOADB L04,L05 -> -(SP) CALL_2N R0084 ((SP)+) PRINT " " CALL_VN R0047 (L06,#10,#01) L0058: CALL_VN R0094 (L06,L01,L02) L0059: AND G72,#08 -> -(SP) JZ (SP)+ [TRUE] L0061 JE L0d,#01 [FALSE] L0060 PRINT " and " L0060: JG L0d,#01 [FALSE] L0061 PRINT ", " L0061: JUMP L0027 L0062: RTRUE L0063: STORE L0b,L06 STORE L05,#01 STORE L06,L00 JUMP L0065 L0064: CALL_VS R0086 (L06,L01) -> L06 INC L05 INC L0d L0065: JG L05,L0b [TRUE] L0067 GET_PROP L06,#0e -> -(SP) JE (SP)+,#00,G73 [TRUE] L0066 GET_PROP L06,#0e -> -(SP) CALL_2S R0046 ((SP)+) -> -(SP) JE (SP)+,#02,#03 [FALSE] L0066 GET_PROP L06,#0e -> -(SP) JE (SP)+,L0e [FALSE] L0066 DEC L0d L0066: GET_PROP L06,#0e -> L0e JUMP L0064 L0067: STORE L05,#01 STORE L06,L00 STORE L0e,#00 JUMP L0069 L0068: CALL_VS R0086 (L06,L01) -> L06 INC L05 L0069: JG L05,L0d [TRUE] L0091 GET_PROP L06,#0e -> -(SP) JE (SP)+,#00,G73 [TRUE] L0083 GET_PROP L06,#0e -> -(SP) JE (SP)+,L0e [FALSE] L0070 DEC L05 JUMP L0090 L0070: CALL_VS R0086 (L06,L01) -> L07 JZ L07 [TRUE] L0071 GET_PROP L06,#0e -> -(SP) GET_PROP L07,#0e -> -(SP) JE (SP)+,(SP)+ [TRUE] L0072 L0071: JUMP L0083 L0072: GET_PROP L06,#0e -> -(SP) CALL_2S R0046 ((SP)+) -> L07 JE L07,#02,#03 [FALSE] L0083 AND G72,#02 -> -(SP) JZ (SP)+ [TRUE] L0074 ADD L01,G76 -> -(SP) MUL #02,(SP)+ -> -(SP) PULL Gef JL Gef,#00 [TRUE] L0074 L0073: PRINT_CHAR ' ' DEC Gef JZ Gef [FALSE] L0073 L0074: JE L07,#03 [FALSE] L0077 STORE L0c,L06 STORE L09,#00 L0075: CALL_VS R0086 (L0c,L01) -> L0c INC L09 GET_PROP L06,#0e -> -(SP) GET_PROP L0c,#0e -> -(SP) JE (SP)+,(SP)+ [TRUE] L0075 CALL_2N R0084 (L09) PRINT " " GET_PROP L06,#0e -> -(SP) PRINT_PADDR (SP)+ AND G72,#08 -> -(SP) JZ (SP)+ [TRUE] L0076 PRINT " (" L0076: AND G72,#02 -> -(SP) JZ (SP)+ [TRUE] L0077 PRINT ": " L0077: STORE L0c,G72 JE L07,#03 [TRUE] L0078 STORE G71,#01 STORE G45,L06 ADD L01,G76 -> G46 CALL_VS R0049 (L06,#0e) -> -(SP) JE (SP)+,#01 [FALSE] L0078 JUMP L0081 L0078: GET_PROP L06,#0e -> G73 STORE G74,L06 INC G76 CALL_VN R0092 (L06,L01,L02) DEC G76 STORE G73,#00 STORE G74,#00 JE L07,#03 [FALSE] L0080 AND L0c,#08 -> -(SP) JZ (SP)+ [TRUE] L0079 PRINT ")" L0079: JUMP L0081 L0080: STORE G71,#02 STORE G45,L06 ADD L01,G76 -> G46 CALL_VN R0049 (L06,#0e) L0081: AND L0c,#01 -> -(SP) JZ (SP)+ [TRUE] L0082 AND G72,#01 -> -(SP) JZ (SP)+ [FALSE] L0082 NEW_LINE L0082: STORE G72,L0c GET_PROP L06,#0e -> L0e JUMP L0088 L0083: CALL_VS R0093 (L06,L01) -> -(SP) JE (SP)+,#01 [FALSE] L0084 JUMP L0090 L0084: AND G72,#1000 -> -(SP) JZ (SP)+ [TRUE] L0085 CALL_2N R0079 (L06) JUMP L0087 L0085: AND G72,#0100 -> -(SP) JZ (SP)+ [TRUE] L0086 CALL_2N R0077 (L06) JUMP L0087 L0086: CALL_2N R0076 (L06) L0087: CALL_VN R0094 (L06,L01,L02) L0088: AND G72,#08 -> -(SP) JZ (SP)+ [TRUE] L0090 SUB L0d,#01 -> -(SP) JE L05,(SP)+ [FALSE] L0089 PRINT " and " L0089: SUB L0d,#01 -> -(SP) JL L05,(SP)+ [FALSE] L0090 PRINT ", " L0090: JUMP L0068 L0091: RTRUE Routine R0093, 3 locals AND G72,#02 -> -(SP) JZ (SP)+ [TRUE] L0002 ADD L01,G76 -> -(SP) MUL #02,(SP)+ -> -(SP) PULL Gef JL Gef,#00 [TRUE] L0002 L0001: PRINT_CHAR ' ' DEC Gef JZ Gef [FALSE] L0001 L0002: AND G72,#04 -> -(SP) JZ (SP)+ [TRUE] L0003 GET_PROP L00,#0f -> -(SP) JZ (SP)+ [TRUE] L0003 STORE G71,#01 CALL_VS R0047 (L00,#0f,#01) -> L02 JE L02,#01 [FALSE] L0003 AND G72,#01 -> -(SP) JZ (SP)+ [TRUE] L0003 NEW_LINE L0003: RET L02 Routine R0094, 8 locals AND G72,#80 -> -(SP) JZ (SP)+ [TRUE] L0012 STORE L07,#00 TEST_ATTR L00,#09 [FALSE] L0001 TEST_ATTR G00,#09 [TRUE] L0001 ADD L07,#01 -> L07 L0001: TEST_ATTR L00,#03 [FALSE] L0002 TEST_ATTR L00,#0e [TRUE] L0002 ADD L07,#02 -> L07 L0002: TEST_ATTR L00,#03 [FALSE] L0005 TEST_ATTR L00,#0e [TRUE] L0003 TEST_ATTR L00,#17 [FALSE] L0005 L0003: GET_CHILD L00 -> -(SP) [FALSE] L0004 L0004: JZ (SP)+ [FALSE] L0005 ADD L07,#04 -> L07 L0005: JE L07,#01 [FALSE] L0006 PRINT " (providing light)" L0006: JE L07,#02 [FALSE] L0007 PRINT " (which is closed)" L0007: JE L07,#03 [FALSE] L0008 PRINT " (closed and providing light)" L0008: JE L07,#04 [FALSE] L0009 PRINT " (which is empty)" L0009: JE L07,#05 [FALSE] L0010 PRINT " (empty and providing light)" L0010: JE L07,#06 [FALSE] L0011 PRINT " (which is closed and empty)" L0011: JE L07,#07 [FALSE] L0012 PRINT " (closed, empty and providing light)" L0012: AND G72,#04 -> -(SP) JZ (SP)+ [TRUE] L0029 GET_PROP L00,#0f -> -(SP) JZ (SP)+ [TRUE] L0014 STORE G71,#02 CALL_VS R0049 (L00,#0f) -> -(SP) JZ (SP)+ [TRUE] L0014 AND G72,#01 -> -(SP) JZ (SP)+ [TRUE] L0013 NEW_LINE L0013: RTRUE L0014: TEST_ATTR L00,#09 [FALSE] L0015 TEST_ATTR L00,#1a [FALSE] L0015 PRINT " (providing light and being worn" STORE L04,#01 JUMP L0017 L0015: TEST_ATTR L00,#09 [FALSE] L0016 PRINT " (providing light" STORE L04,#01 L0016: TEST_ATTR L00,#1a [FALSE] L0017 PRINT " (being worn" STORE L04,#01 L0017: TEST_ATTR L00,#03 [FALSE] L0028 TEST_ATTR L00,#0f [FALSE] L0025 JE L04,#01 [FALSE] L0018 PRINT " and " JUMP L0019 L0018: PRINT " (which is " L0019: TEST_ATTR L00,#0e [FALSE] L0022 PRINT "open" GET_CHILD L00 -> -(SP) [FALSE] L0020 L0020: JZ (SP)+ [FALSE] L0021 PRINT " but empty" L0021: JUMP L0023 L0022: PRINT "closed" L0023: TEST_ATTR L00,#0a [FALSE] L0024 TEST_ATTR L00,#0b [FALSE] L0024 PRINT " and locked" L0024: STORE L04,#01 JUMP L0028 L0025: GET_CHILD L00 -> -(SP) [FALSE] L0026 L0026: JZ (SP)+ [FALSE] L0028 JE L04,#01 [FALSE] L0027 PRINT " and empty" JUMP L0028 L0027: PRINT " (which is empty)" L0028: JE L04,#01 [FALSE] L0029 PRINT ")" L0029: AND G72,#0800 -> -(SP) JZ (SP)+ [FALSE] L0034 GET_CHILD L00 -> -(SP) [FALSE] L0030 L0030: JZ (SP)+ [TRUE] L0033 STORE Gef,#00 GET_CHILD L00 -> -(SP) [FALSE] L0032 L0031: INC Gef GET_SIBLING (SP)+ -> -(SP) [TRUE] L0031 L0032: PULL Gee STORE L05,Gef L0033: JUMP L0038 L0034: GET_CHILD L00 -> -(SP) [FALSE] L0035 L0035: PULL L06 JZ L06 [TRUE] L0038 L0036: TEST_ATTR L06,#02 [TRUE] L0037 INC L05 L0037: GET_SIBLING L06 -> L06 [TRUE] L0036 L0038: AND G72,#20 -> -(SP) JZ (SP)+ [TRUE] L0040 JG L05,#00 [FALSE] L0040 AND G72,#08 -> -(SP) JZ (SP)+ [TRUE] L0039 PRINT " containing " L0039: STORE L03,#01 L0040: AND G72,#10 -> -(SP) JZ (SP)+ [TRUE] L0051 JG L05,#00 [FALSE] L0051 TEST_ATTR L00,#14 [FALSE] L0045 AND G72,#08 -> -(SP) JZ (SP)+ [TRUE] L0044 AND G72,#40 -> -(SP) JZ (SP)+ [TRUE] L0041 PRINT " (on " JUMP L0042 L0041: PRINT ", on top of " L0042: TEST_ATTR L00,#00 [FALSE] L0043 PRINT "whom " JUMP L0044 L0043: PRINT "which " L0044: STORE L03,#01 L0045: TEST_ATTR L00,#03 [FALSE] L0051 TEST_ATTR L00,#0e [TRUE] L0046 TEST_ATTR L00,#17 [FALSE] L0051 L0046: AND G72,#08 -> -(SP) JZ (SP)+ [TRUE] L0050 AND G72,#40 -> -(SP) JZ (SP)+ [TRUE] L0047 PRINT " (in " JUMP L0048 L0047: PRINT ", inside " L0048: TEST_ATTR L00,#00 [FALSE] L0049 PRINT "whom " JUMP L0050 L0049: PRINT "which " L0050: STORE L03,#01 L0051: JE L03,#01 [FALSE] L0053 AND G72,#08 -> -(SP) JZ (SP)+ [TRUE] L0053 JG L05,#01 [FALSE] L0052 PRINT "are " JUMP L0053 L0052: PRINT "is " L0053: AND G72,#01 -> -(SP) JZ (SP)+ [TRUE] L0054 NEW_LINE L0054: JE L03,#01 [FALSE] L0056 ADD L01,#01 -> -(SP) GET_CHILD L00 -> -(SP) [FALSE] L0055 L0055: CALL_VN R0092 ((SP)+,(SP)+,L02) L0056: JE L03,#01 [FALSE] L0057 AND G72,#40 -> -(SP) JZ (SP)+ [TRUE] L0057 PRINT ")" L0057: RTRUE Routine R0095, 5 locals STORE L00,#15 L0001: JG L00,G14 [TRUE] L0009 GET_PROP_ADDR L00,#18 -> L04 JZ L04 [TRUE] L0008 TEST_ATTR L00,#07 [TRUE] L0008 LOADW L04,#00 -> -(SP) CALL_2S R0046 ((SP)+) -> -(SP) JE (SP)+,#02 [FALSE] L0003 LOADW L04,#00 -> -(SP) CALL_1S (SP)+ -> -(SP) JZ (SP)+ [TRUE] L0002 INSERT_OBJ L00,G00 L0002: JUMP L0008 L0003: GET_PROP_ADDR L00,#18 -> Gef JZ Gef [TRUE] L0004 GET_PROP_LEN Gef -> Gef L0004: STORE L01,Gef STORE L02,#00 L0005: DIV L01,#02 -> -(SP) JL L02,(SP)+ [FALSE] L0008 LOADW L04,L02 -> L03 JE L03,G00 [TRUE] L0006 JIN L03,G00 [FALSE] L0007 L0006: INSERT_OBJ L00,G00 L0007: INC L02 JUMP L0005 L0008: INC L00 JUMP L0001 L0009: RTRUE Routine R0096, 2 locals INSERT_OBJ G08,L00 L0001: GET_PARENT L00 -> -(SP) JZ (SP)+ [TRUE] L0002 GET_PARENT L00 -> L00 JUMP L0001 L0002: STORE G00,L00 STORE G0a,G00 CALL_2N R0068 (#01) JZ L01 [FALSE] L0003 CALL_2N R0059 (#07) L0003: JE L01,#01 [FALSE] L0004 CALL_1N R0142 CALL_1N R0143 L0004: JE L01,#02 [FALSE] L0005 CALL_2N R0144 (#01) L0005: RTRUE Routine R0097, 1 local CALL_VN R0059 (#00,L00) CALL_2N R0059 (#07) RTRUE Routine R0098, 1 local L0001: STORE Gec,#33a8 STOREB Gec,#01,#00 CALL_1N R0003 READ Gec,#3421 -> Gef LOADW #3421,#01 -> L00 JE L00,"yes","y" [TRUE] RTRUE JE L00,"no","n" [TRUE] RFALSE CALL_VN R0205 (#0c,#01) PRINT "> " JUMP L0001 orphan code fragment: RTRUE Routine R0099, 0 locals Action routine for: "die" CALL_VN R0205 (#0c,#02) CALL_1S R0098 -> -(SP) JZ (SP)+ [TRUE] L0001 QUIT L0001: RTRUE Routine R0100, 0 locals Action routine for: "restart" CALL_VN R0205 (#0d,#01) CALL_1S R0098 -> -(SP) JZ (SP)+ [TRUE] L0001 RESTART CALL_VN R0205 (#0d,#02) L0001: RTRUE Routine R0101, 0 locals Action routine for: "restore" RESTORE -> Gef JE Gef,#02 [TRUE] L0001 CALL_VS R0205 (#0e,#01) -> -(SP) RET_POPPED L0001: CALL_VN R0205 (#0e,#02) RTRUE Routine R0102, 0 locals Action routine for: "save" SAVE -> Gef JZ Gef [FALSE] L0001 CALL_VS R0205 (#0f,#01) -> -(SP) RET_POPPED L0001: CALL_VN R0205 (#0f,#02) RTRUE Routine R0103, 0 locals Action routine for: "verify" VERIFY [TRUE] L0001 JUMP L0002 L0001: CALL_VS R0205 (#10,#01) -> -(SP) RET_POPPED L0002: CALL_VN R0205 (#10,#02) RTRUE Routine R0104, 0 locals Action routine for: "script" "script on" JE G0d,#01 [FALSE] L0001 CALL_VS R0205 (#11,#01) -> -(SP) RET_POPPED L0001: STORE G0d,#01 LOADW #00,#08 -> -(SP) OR (SP)+,#01 -> -(SP) STOREW #00,#08,(SP)+ CALL_VN R0205 (#11,#02) CALL_1N R0082 RTRUE Routine R0105, 0 locals Action routine for: "script off" "noscript" JZ G0d [FALSE] L0001 CALL_VS R0205 (#12,#01) -> -(SP) RET_POPPED L0001: CALL_VN R0205 (#12,#02) STORE G0d,#00 LOADW #00,#08 -> -(SP) AND (SP)+,#fffe -> -(SP) STOREW #00,#08,(SP)+ RTRUE Routine R0106, 0 locals Action routine for: "notify on" STORE G0f,#01 CALL_2N R0205 (#13) RTRUE Routine R0107, 0 locals Action routine for: "notify off" STORE G0f,#00 CALL_2N R0205 (#14) RTRUE Routine R0108, 3 locals Action routine for: "places" CALL_2N R0205 (#15) STORE L00,#14 L0001: JG L00,G14 [TRUE] L0003 TEST_ATTR L00,#18 [FALSE] L0002 INC L01 L0002: INC L00 JUMP L0001 L0003: STORE L00,#14 L0004: JG L00,G14 [TRUE] L0008 TEST_ATTR L00,#18 [FALSE] L0007 CALL_2N R0079 (L00) INC L02 JE L02,L01 [FALSE] L0005 PRINT_RET "." L0005: SUB L01,#01 -> -(SP) JE L02,(SP)+ [FALSE] L0006 PRINT " and " JUMP L0007 L0006: PRINT ", " L0007: INC L00 JUMP L0004 L0008: RTRUE Routine R0109, 3 locals Action routine for: "objects" CALL_VN R0205 (#16,#01) STORE L00,#14 L0001: JG L00,G14 [TRUE] L0012 TEST_ATTR L00,#0c [FALSE] L0011 STORE L02,#01 CALL_2N R0077 (L00) GET_PARENT L00 -> L01 JE L01,G08 [FALSE] L0004 TEST_ATTR L00,#1a [FALSE] L0002 PRINT " (worn)" JUMP L0003 L0002: PRINT " (held)" L0003: JUMP L0010 L0004: TEST_ATTR L01,#00 [FALSE] L0005 PRINT " (given away)" JUMP L0010 L0005: TEST_ATTR L01,#18 [FALSE] L0006 PRINT " (in " CALL_2N R0079 (L01) PRINT ")" JUMP L0010 L0006: TEST_ATTR L01,#06 [FALSE] L0007 PRINT " (in " CALL_2N R0077 (L01) PRINT ")" JUMP L0010 L0007: TEST_ATTR L01,#03 [FALSE] L0008 PRINT " (inside " CALL_2N R0079 (L01) PRINT ")" JUMP L0010 L0008: TEST_ATTR L01,#14 [FALSE] L0009 PRINT " (on " CALL_2N R0079 (L01) PRINT ")" JUMP L0010 L0009: PRINT " (lost)" L0010: NEW_LINE L0011: INC L00 JUMP L0001 L0012: JZ L02 [FALSE] L0013 CALL_VN R0205 (#16,#02) L0013: RTRUE Routine R0110, 0 locals Action routine for: "score" CALL_2N R0205 (#17) CALL_1N R0330 RTRUE Routine R0111, 1 local LOADB #374b,L00 -> -(SP) JZ (SP)+ [FALSE] L0001 STOREB #374b,L00,#01 LOADB #3747,L00 -> -(SP) ADD G06,(SP)+ -> G06 L0001: RTRUE Routine R0112, 2 locals PRINT " " STORE L01,L00 JL L01,#00 [FALSE] L0001 SUB #00,L00 -> L01 MUL L01,#0a -> L01 L0001: JL L01,#0a [FALSE] L0002 PRINT " " JUMP L0004 L0002: JL L01,#64 [FALSE] L0003 PRINT " " JUMP L0004 L0003: JL L01,#03e8 [FALSE] L0004 PRINT " " L0004: PRINT_NUM L00 PRINT " " RTRUE Routine R0113, 1 local Action routine for: "full" "full score" CALL_1N R0110 JZ G06 [TRUE] RFALSE JZ #01 [FALSE] RFALSE NEW_LINE CALL_VN R0205 (#18,#01) STORE L00,#00 L0001: JL L00,#01 [FALSE] L0003 LOADB #374b,L00 -> -(SP) JE (SP)+,#01 [FALSE] L0002 LOADB #3747,L00 -> -(SP) CALL_2N R0112 ((SP)+) CALL_2N R0368 (L00) L0002: INC L00 JUMP L0001 L0003: JZ G11 [TRUE] L0004 CALL_2N R0112 (G11) CALL_VN R0205 (#18,#02) L0004: JZ G10 [TRUE] L0005 CALL_2N R0112 (G10) CALL_VN R0205 (#18,#03) L0005: NEW_LINE CALL_2N R0112 (G06) CALL_VN R0205 (#18,#04) RTRUE Routine R0114, 0 locals Action routine for: "i wide" STORE G77,#1c CALL_2N R0059 (#19) RTRUE Routine R0115, 0 locals Action routine for: "i tall" STORE G77,#17 CALL_2N R0059 (#19) RTRUE Routine R0116, 0 locals Action routine for: "carry inventory" "i" GET_CHILD G08 -> -(SP) [FALSE] L0001 L0001: JZ (SP)+ [FALSE] L0002 CALL_VS R0205 (#19,#01) -> -(SP) RET_POPPED L0002: JZ G77 [FALSE] L0003 CALL_2N R0059 (#1a) RTRUE L0003: CALL_VN R0205 (#19,#02) AND G77,#01 -> -(SP) JZ (SP)+ [TRUE] L0004 PRINT ": " JUMP L0005 L0004: PRINT " " L0005: GET_CHILD G08 -> -(SP) [FALSE] L0006 L0006: CALL_VN R0091 ((SP)+,G77,#01) AND G77,#08 -> -(SP) JZ (SP)+ [TRUE] L0007 PRINT ". " L0007: CALL_1N R0058 RTRUE Routine R0117, 0 locals Action routine for: "carry MULTI" "pick up MULTI" "pick MULTI up" "remove MULTI" "peel NOUN" "peel off NOUN" JZ G25 [TRUE] L0001 GET_PARENT G1e -> -(SP) JE (SP)+,G08 [TRUE] L0003 L0001: JE G00,#13 [FALSE] L0002 CALL_2S R0118 (G0a) -> -(SP) JZ (SP)+ [FALSE] RTRUE JUMP L0003 L0002: CALL_2S R0118 (G00) -> -(SP) JZ (SP)+ [FALSE] RTRUE L0003: CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE STORE G24,G25 JE G24,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_VN R0205 (#01,#01) RTRUE Routine R0118, 5 locals JE G1e,G08 [FALSE] L0001 CALL_VS R0205 (#01,#02) -> -(SP) RET_POPPED L0001: TEST_ATTR G1e,#00 [FALSE] L0002 CALL_VS R0205 (#01,#03,G1e) -> -(SP) RET_POPPED L0002: GET_PARENT G08 -> -(SP) JE (SP)+,G1e [FALSE] L0003 CALL_VS R0205 (#01,#04,G1e) -> -(SP) RET_POPPED L0003: GET_PARENT G1e -> L01 JE L01,G08 [FALSE] L0004 CALL_VS R0205 (#01,#05) -> -(SP) RET_POPPED L0004: TEST_ATTR L01,#03 [TRUE] L0005 TEST_ATTR L01,#14 [FALSE] L0007 L0005: STORE L04,L01 STORE L03,G19 STORE G19,#0100 CALL_VS R0049 (L01,#04) -> -(SP) JZ (SP)+ [TRUE] L0006 STORE G19,L03 RTRUE L0006: STORE G19,L03 L0007: JE L01,L00 [TRUE] L0013 JZ L01 [TRUE] L0013 TEST_ATTR L01,#03 [TRUE] L0010 TEST_ATTR L01,#14 [TRUE] L0010 TEST_ATTR L01,#00 [FALSE] L0008 CALL_VS R0205 (#01,#06,L01) -> -(SP) RET_POPPED L0008: TEST_ATTR L01,#17 [FALSE] L0009 CALL_VS R0205 (#01,#07,L01) -> -(SP) RET_POPPED L0009: CALL_VS R0205 (#01,#08) -> -(SP) RET_POPPED L0010: TEST_ATTR L01,#03 [FALSE] L0011 TEST_ATTR L01,#0e [TRUE] L0011 CALL_VS R0205 (#01,#09,L01) -> -(SP) RET_POPPED L0011: GET_PARENT L01 -> L01 JE L01,G08 [FALSE] L0012 STORE L01,L00 L0012: JUMP L0007 L0013: TEST_ATTR G1e,#11 [FALSE] L0014 CALL_VS R0205 (#01,#0a) -> -(SP) RET_POPPED L0014: TEST_ATTR G1e,#13 [FALSE] L0015 CALL_VS R0205 (#01,#0b) -> -(SP) RET_POPPED L0015: STORE L03,#00 GET_CHILD G08 -> -(SP) [FALSE] L0016 L0016: PULL L02 JZ L02 [TRUE] L0019 L0017: TEST_ATTR L02,#1a [TRUE] L0018 INC L03 L0018: GET_SIBLING L02 -> L02 [TRUE] L0017 L0019: CALL_VS R0048 (G08,#1d) -> -(SP) JL L03,(SP)+ [TRUE] L0028 JZ #00 [TRUE] L0027 GET_PARENT #00 -> -(SP) JE (SP)+,G08 [TRUE] L0020 CALL_VS R0205 (#01,#0c) -> -(SP) RET_POPPED L0020: STORE L02,#00 GET_CHILD G08 -> -(SP) [FALSE] L0021 L0021: PULL L03 JZ L03 [TRUE] L0024 L0022: JZ L03 [TRUE] L0023 TEST_ATTR L03,#1a [TRUE] L0023 TEST_ATTR L03,#09 [TRUE] L0023 STORE L02,L03 L0023: GET_SIBLING L03 -> L03 [TRUE] L0022 L0024: JZ L02 [TRUE] L0025 CALL_VN R0205 (#01,#0d,L02) STORE G78,#01 CALL_VN R0059 (#1b,L02,#00) STORE G78,#00 JIN L02,#00 [FALSE] RTRUE JUMP L0026 L0025: CALL_VS R0205 (#01,#0c) -> -(SP) RET_POPPED L0026: JUMP L0028 L0027: CALL_VS R0205 (#01,#0c) -> -(SP) RET_POPPED L0028: INSERT_OBJ G1e,G08 JZ L04 [TRUE] L0030 STORE L03,G19 STORE G19,#0100 CALL_VS R0049 (L04,#05) -> -(SP) JZ (SP)+ [TRUE] L0029 STORE G19,L03 RTRUE L0029: STORE G19,L03 L0030: RFALSE Routine R0119, 1 local Action routine for: "put down MULTIHELD" "put MULTIHELD down" "discard MULTIHELD" GET_PARENT G1e -> L00 JE L00,G00 [FALSE] L0001 CALL_VS R0205 (#1c,#01) -> -(SP) RET_POPPED L0001: JE L00,G08 [TRUE] L0002 CALL_VS R0205 (#1c,#02) -> -(SP) RET_POPPED L0002: TEST_ATTR G1e,#1a [FALSE] L0003 CALL_VN R0205 (#1c,#03,G1e) CALL_VN R0059 (#1d,G1e) TEST_ATTR G1e,#1a [TRUE] RTRUE L0003: GET_PARENT G08 -> -(SP) INSERT_OBJ G1e,(SP)+ CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_VS R0205 (#1c,#04) -> -(SP) RET_POPPED Routine R0120, 1 local Action routine for: "carry MULTIINSIDE from NOUN" "carry MULTIINSIDE off NOUN" "remove MULTIINSIDE from NOUN" GET_PARENT G1e -> L00 TEST_ATTR L00,#03 [FALSE] L0001 TEST_ATTR L00,#0e [TRUE] L0001 CALL_VS R0205 (#06,#01) -> -(SP) RET_POPPED L0001: JE L00,G1f [TRUE] L0002 CALL_VS R0205 (#06,#02) -> -(SP) RET_POPPED L0002: TEST_ATTR L00,#00 [FALSE] L0003 CALL_VS R0205 (#01,#06,L00) -> -(SP) RET_POPPED L0003: CALL_2S R0118 (G1f) -> -(SP) JZ (SP)+ [FALSE] RTRUE STORE G19,#01 CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE STORE G19,#06 CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_VS R0205 (#06,#04) -> -(SP) RET_POPPED Routine R0121, 2 locals L0001: JZ L01 [TRUE] L0002 JE L00,L01 [TRUE] RTRUE GET_PARENT L01 -> L01 JUMP L0001 L0002: RFALSE Routine R0122, 0 locals Action routine for: "put MULTIEXCEPT on NOUN" "put MULTIEXCEPT onto NOUN" "discard MULTIEXCEPT on NOUN" "discard MULTIEXCEPT onto NOUN" STORE G79,#1e JE G1f,#10 [FALSE] L0001 CALL_VN R0059 (#1c,G1e) RFALSE L0001: GET_PARENT G1e -> -(SP) JE (SP)+,G08 [TRUE] L0002 CALL_VS R0205 (#1e,#01,G1e) -> -(SP) RET_POPPED L0002: JG G1f,#01 [FALSE] L0004 STORE G19,#0101 CALL_VS R0049 (G1f,#04) -> -(SP) JZ (SP)+ [TRUE] L0003 STORE G19,#1e RTRUE L0003: STORE G19,#1e L0004: CALL_VS R0121 (G1e,G1f) -> -(SP) JE (SP)+,#01 [FALSE] L0005 CALL_VS R0205 (#1e,#02) -> -(SP) RET_POPPED L0005: TEST_ATTR G1f,#14 [TRUE] L0006 CALL_VS R0205 (#1e,#03,G1f) -> -(SP) RET_POPPED L0006: GET_PARENT G1f -> -(SP) JE (SP)+,G08 [FALSE] L0007 CALL_VS R0205 (#1e,#04) -> -(SP) RET_POPPED L0007: TEST_ATTR G1e,#1a [FALSE] L0008 CALL_VN R0205 (#1e,#05) CALL_VN R0059 (#1d,G1e) TEST_ATTR G1e,#1a [TRUE] RTRUE L0008: CALL_VS R0048 (G1f,#1d) -> -(SP) STORE Gef,#00 GET_CHILD G1f -> -(SP) [FALSE] L0010 L0009: INC Gef GET_SIBLING (SP)+ -> -(SP) [TRUE] L0009 L0010: PULL Gee PUSH Gef JL (SP)+,(SP)+ [TRUE] L0011 CALL_VS R0205 (#1e,#06,G1f) -> -(SP) RET_POPPED L0011: INSERT_OBJ G1e,G1f CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JG G1f,#01 [FALSE] L0013 STORE G19,#0101 CALL_VS R0049 (G1f,#05) -> -(SP) JZ (SP)+ [TRUE] L0012 STORE G19,#1e RTRUE L0012: STORE G19,#1e L0013: JE G78,#01 [TRUE] RTRUE JE G23,#01 [FALSE] L0014 CALL_VS R0205 (#1e,#07) -> -(SP) RET_POPPED L0014: CALL_VN R0205 (#1e,#08,G1e) RTRUE Routine R0123, 0 locals Action routine for: "put MULTIEXCEPT in NOUN" "put MULTIEXCEPT inside NOUN" "put MULTIEXCEPT into NOUN" "insert MULTIEXCEPT in NOUN" "insert MULTIEXCEPT into NOUN" "discard MULTIEXCEPT in NOUN" "discard MULTIEXCEPT into NOUN" "discard MULTIEXCEPT down NOUN" STORE G79,#1b JE G1f,#10 [FALSE] L0001 CALL_VN R0059 (#1c,G1e) RTRUE L0001: GET_PARENT G1e -> -(SP) JE (SP)+,G08 [TRUE] L0002 CALL_VS R0205 (#1b,#01) -> -(SP) RET_POPPED L0002: JG G1f,#01 [FALSE] L0004 STORE G19,#0101 CALL_VS R0049 (G1f,#04) -> -(SP) JZ (SP)+ [TRUE] L0003 STORE G19,#1b RTRUE L0003: STORE G19,#1b L0004: TEST_ATTR G1f,#03 [TRUE] L0005 CALL_VS R0205 (#1b,#02) -> -(SP) RET_POPPED L0005: TEST_ATTR G1f,#0e [TRUE] L0006 CALL_VS R0205 (#1b,#03) -> -(SP) RET_POPPED L0006: CALL_VS R0121 (G1e,G1f) -> -(SP) JE (SP)+,#01 [FALSE] L0007 CALL_VS R0205 (#1b,#05) -> -(SP) RET_POPPED L0007: TEST_ATTR G1e,#1a [FALSE] L0008 CALL_VN R0205 (#1b,#06) CALL_VN R0059 (#1d,G1e) TEST_ATTR G1e,#1a [TRUE] RTRUE L0008: CALL_VS R0048 (G1f,#1d) -> -(SP) STORE Gef,#00 GET_CHILD G1f -> -(SP) [FALSE] L0010 L0009: INC Gef GET_SIBLING (SP)+ -> -(SP) [TRUE] L0009 L0010: PULL Gee PUSH Gef JL (SP)+,(SP)+ [TRUE] L0011 CALL_VS R0205 (#1b,#07,G1f) -> -(SP) RET_POPPED L0011: INSERT_OBJ G1e,G1f CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JG G1f,#01 [FALSE] L0013 STORE G19,#0101 CALL_VS R0049 (G1f,#05) -> -(SP) JZ (SP)+ [TRUE] L0012 STORE G19,#1b RTRUE L0012: STORE G19,#1b L0013: JE G78,#01 [TRUE] RTRUE JE G23,#01 [FALSE] L0014 CALL_VS R0205 (#1b,#08) -> -(SP) RET_POPPED L0014: CALL_VN R0205 (#1b,#09,G1e) RTRUE Routine R0124, 5 locals Action routine for: "transfer NOUN to NOUN" "clear NOUN to NOUN" STORE L01,#1c TEST_ATTR G1f,#03 [FALSE] L0001 STORE L01,#1b JUMP L0002 L0001: TEST_ATTR G1f,#14 [FALSE] L0002 STORE L01,#1e L0002: GET_PARENT G1e -> L00 JE L00,G08 [TRUE] L0007 L0003: JZ L00 [TRUE] L0006 TEST_ATTR L00,#0e [TRUE] L0004 CALL_VS R0205 (#1f,#01) -> -(SP) RET_POPPED L0004: GET_PARENT L00 -> L00 JE L00,G08 [FALSE] L0005 JUMP L0007 L0005: JUMP L0003 L0006: CALL_VS R0205 (#1f,#02) -> -(SP) RET_POPPED L0007: JIN G1e,G08 [TRUE] L0012 GET_PARENT G1e -> L04 TEST_ATTR L04,#03 [TRUE] L0008 TEST_ATTR L04,#14 [FALSE] L0010 L0008: STORE L03,L04 STORE L02,G19 STORE G19,#0100 CALL_VS R0049 (L04,#04) -> -(SP) JZ (SP)+ [TRUE] L0009 STORE G19,L02 RTRUE L0009: STORE G19,L02 L0010: INSERT_OBJ G1e,G08 JZ L03 [TRUE] L0012 STORE L02,G19 STORE G19,#0100 CALL_VS R0049 (L03,#05) -> -(SP) JZ (SP)+ [TRUE] L0011 STORE G19,L02 RTRUE L0011: STORE G19,L02 L0012: JE L01,#1c [FALSE] L0013 CALL_VN R0059 (#1c,G1e) RTRUE L0013: JE L01,#1b [FALSE] L0014 CALL_VN R0059 (#1b,G1e,G1f) RTRUE L0014: JE L01,#1e [FALSE] L0015 CALL_VN R0059 (#1e,G1e,G1f) RTRUE L0015: RTRUE Routine R0125, 0 locals Action routine for: "empty NOUN" "empty out NOUN" "empty NOUN out" "douse NOUN" STORE G1f,#10 CALL_1N R0126 RTRUE Routine R0126, 2 locals Action routine for: "empty NOUN to NOUN" "empty NOUN into NOUN" "empty NOUN on NOUN" "empty NOUN onto NOUN" TEST_ATTR G1e,#03 [TRUE] L0001 CALL_VS R0205 (#20,#01,G1e) -> -(SP) RET_POPPED L0001: TEST_ATTR G1e,#0e [TRUE] L0002 CALL_VS R0205 (#20,#02,G1e) -> -(SP) RET_POPPED L0002: JE G1f,#10 [TRUE] L0004 TEST_ATTR G1f,#03 [TRUE] L0003 CALL_VS R0205 (#20,#01,G1f) -> -(SP) RET_POPPED L0003: TEST_ATTR G1f,#0e [TRUE] L0004 CALL_VS R0205 (#20,#02,G1f) -> -(SP) RET_POPPED L0004: GET_CHILD G1e -> L00 [FALSE] L0005 L0005: JZ L00 [FALSE] L0006 CALL_VS R0205 (#20,#03,G1e) -> -(SP) RET_POPPED L0006: JZ L00 [TRUE] L0008 GET_SIBLING L00 -> L01 [FALSE] L0007 L0007: CALL_2N R0079 (L00) PRINT ": " CALL_VN R0059 (#1f,L00,G1f) STORE L00,L01 JUMP L0006 L0008: RTRUE Routine R0127, 0 locals Action routine for: "feed HELD to CREATURE" "feed over HELD to CREATURE" GET_PARENT G1e -> -(SP) JE (SP)+,G08 [TRUE] L0001 CALL_VS R0205 (#0a,#01,G1e) -> -(SP) RET_POPPED L0001: JE G1f,G08 [FALSE] L0002 CALL_VS R0205 (#0a,#02,G1e) -> -(SP) RET_POPPED L0002: CALL_VS R0060 (G1f,#0a) -> -(SP) JZ (SP)+ [FALSE] RFALSE CALL_VN R0205 (#0a,#03,G1f) RTRUE Routine R0128, 0 locals Action routine for: "feed CREATURE HELD" CALL_VN R0059 (#0a,G1f,G1e) RTRUE Routine R0129, 0 locals Action routine for: "display HELD to CREATURE" GET_PARENT G1e -> -(SP) JE (SP)+,G08 [TRUE] L0001 CALL_VS R0205 (#0b,#01,G1e) -> -(SP) RET_POPPED L0001: JE G1f,G08 [FALSE] L0002 CALL_VN R0059 (#21,G1e) RTRUE L0002: CALL_VS R0060 (G1f,#0b) -> -(SP) JZ (SP)+ [FALSE] RFALSE CALL_VN R0205 (#0b,#02,G1f) RTRUE Routine R0130, 0 locals Action routine for: "display CREATURE HELD" CALL_VN R0059 (#0b,G1f,G1e) RTRUE Routine R0131, 1 local Action routine for: "carry in NOUN" "carry into NOUN" "carry on NOUN" "stand on NOUN" "go NOUN" "go into NOUN" "go in NOUN" "go inside NOUN" "go through NOUN" "cross NOUN" "lie on NOUN" "lie in NOUN" "lie inside NOUN" TEST_ATTR G1e,#04 [FALSE] L0001 CALL_VN R0059 (#00,G1e) RTRUE L0001: GET_PARENT G08 -> L00 JE L00,G00 [TRUE] L0002 CALL_VS R0205 (#22,#01,L00) -> -(SP) RET_POPPED L0002: GET_PARENT G1e -> L00 JE L00,#06 [FALSE] L0003 CALL_VN R0059 (#00,G1e) RTRUE L0003: TEST_ATTR G1e,#06 [TRUE] L0004 CALL_VS R0205 (#22,#02) -> -(SP) RET_POPPED L0004: TEST_ATTR G1e,#03 [FALSE] L0005 TEST_ATTR G1e,#0e [TRUE] L0005 CALL_VS R0205 (#22,#03,G1e) -> -(SP) RET_POPPED L0005: JE L00,G00 [TRUE] L0006 CALL_VS R0205 (#22,#04) -> -(SP) RET_POPPED L0006: INSERT_OBJ G08,G1e CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_VN R0205 (#22,#05,G1e) CALL_2N R0138 (G1e) RTRUE Routine R0132, 0 locals Action routine for: "carry off NOUN" GET_PARENT G08 -> -(SP) JE (SP)+,G1e [FALSE] L0001 CALL_2N R0059 (#23) RTRUE L0001: CALL_VN R0205 (#24,#01,G1e) RTRUE Routine R0133, 1 local Action routine for: "carry out" "carry off" "carry up" "stand" "stand up" "exit" GET_PARENT G08 -> L00 JE L00,G00 [TRUE] L0001 JE G00,#13 [FALSE] L0004 JE L00,G0a [FALSE] L0004 L0001: GET_PROP G00,#12 -> -(SP) JZ (SP)+ [FALSE] L0002 JE G00,#13 [FALSE] L0003 GET_PROP G0a,#12 -> -(SP) JZ (SP)+ [TRUE] L0003 L0002: CALL_VN R0059 (#00,#11) RTRUE L0003: CALL_VS R0205 (#23,#01) -> -(SP) RET_POPPED L0004: TEST_ATTR L00,#03 [FALSE] L0005 TEST_ATTR L00,#0e [TRUE] L0005 CALL_VS R0205 (#23,#02,L00) -> -(SP) RET_POPPED L0005: JE G00,#13 [FALSE] L0006 INSERT_OBJ G08,G0a JUMP L0007 L0006: INSERT_OBJ G08,G00 L0007: CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_VN R0205 (#23,#03,L00) CALL_2N R0144 (#01) RTRUE Routine R0134, 0 locals Action routine for: "go" CALL_2N R0205 (#25) RTRUE Routine R0135, 0 locals Action routine for: "cross" "in" CALL_VN R0059 (#00,#12) RTRUE Routine R0136, 6 locals Action routine for: "go NOUN [parse 0]" STORE L04,#00 GET_PARENT G08 -> L00 JE G00,#13 [TRUE] L0001 JE L00,G00 [FALSE] L0002 L0001: JE G00,#13 [FALSE] L0007 JE L00,G0a [TRUE] L0007 L0002: STORE L01,G00 JE G00,#13 [FALSE] L0003 STORE G00,G0a L0003: CALL_VS R0049 (L00,#04) -> L02 JE L02,#03 [TRUE] L0004 STORE G00,L01 L0004: JE L02,#01 [FALSE] L0005 STORE L04,L00 GET_PARENT L00 -> L00 JUMP L0007 L0005: JZ L02 [FALSE] L0006 CALL_VN R0205 (#00,#01,L00) L0006: RTRUE L0007: GET_PROP G1e,#0a -> L05 CALL_2S R0046 (L05) -> -(SP) JE (SP)+,#02 [FALSE] L0008 CALL_VS R0049 (G1e,#0a) -> L05 L0008: CALL_VS R0377 (L00,L05) -> L01 CALL_2S R0046 (L01) -> L02 JE L02,#03 [FALSE] L0009 PRINT_PADDR L01 NEW_LINE RFALSE L0009: JE L02,#02 [FALSE] L0010 CALL_VS R0049 (L00,L05) -> L01 JE L01,#01 [TRUE] RTRUE L0010: JZ L02 [TRUE] L0011 JZ L01 [FALSE] L0013 L0011: GET_PROP L00,#17 -> -(SP) JZ (SP)+ [TRUE] L0012 CALL_VN R0047 (L00,#17) L0012: RFALSE L0013: TEST_ATTR L01,#04 [FALSE] L0021 TEST_ATTR L01,#02 [FALSE] L0014 CALL_VS R0205 (#00,#02) -> -(SP) RET_POPPED L0014: TEST_ATTR L01,#0e [TRUE] L0017 JE G1e,#0f [FALSE] L0015 CALL_VS R0205 (#00,#03,L01) -> -(SP) RET_POPPED L0015: JE G1e,#10 [FALSE] L0016 CALL_VS R0205 (#00,#04,L01) -> -(SP) RET_POPPED L0016: CALL_VS R0205 (#00,#05,L01) -> -(SP) RET_POPPED L0017: GET_PROP L01,#07 -> -(SP) CALL_2S R0046 ((SP)+) -> -(SP) JE (SP)+,#02 [FALSE] L0018 CALL_VS R0049 (L01,#07) -> L01 JUMP L0019 L0018: GET_PROP L01,#07 -> L01 L0019: JZ L01 [FALSE] L0020 CALL_VS R0205 (#00,#06,L01) -> -(SP) RET_POPPED L0020: JE L01,#01 [TRUE] RTRUE L0021: JZ L04 [FALSE] L0022 INSERT_OBJ G08,L01 JUMP L0023 L0022: INSERT_OBJ L04,L01 L0023: CALL_2S R0069 (L01) -> L03 JZ L03 [TRUE] L0024 STORE G00,L01 STORE G09,#01 JUMP L0026 L0024: JE G00,#13 [FALSE] L0025 CALL_1N R0331 L0025: STORE G0a,L01 STORE G00,#13 STORE G09,#00 L0026: CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_2N R0144 (#01) RTRUE Routine R0137, 3 locals GET_PARENT G08 -> -(SP) JE L00,(SP)+ [TRUE] RFALSE GET_CHILD L00 -> -(SP) [FALSE] L0001 L0001: PULL L01 JZ L01 [TRUE] L0004 L0002: TEST_ATTR L01,#02 [TRUE] L0003 TEST_ATTR L01,#11 [TRUE] L0003 STORE L02,#01 L0003: GET_SIBLING L01 -> L01 [TRUE] L0002 L0004: JZ L02 [TRUE] RFALSE CALL_VN R0205 (#07,#04,L00) RTRUE Routine R0138, 9 locals GET_CHILD L00 -> -(SP) [FALSE] L0001 L0001: PULL L03 JZ L03 [TRUE] L0003 L0002: CLEAR_ATTR L03,#19 GET_SIBLING L03 -> L03 [TRUE] L0002 L0003: STORE L05,#00 GET_CHILD L00 -> -(SP) [FALSE] L0004 L0004: PULL L03 JZ L03 [TRUE] L0016 L0005: TEST_ATTR L03,#02 [TRUE] L0015 GET_PARENT G08 -> -(SP) JE L03,(SP)+ [TRUE] L0015 TEST_ATTR L03,#11 [TRUE] L0013 SET_ATTR L03,#19 INC L05 STORE L04,#13 STORE L08,#00 TEST_ATTR L03,#04 [FALSE] L0006 TEST_ATTR L03,#0e [TRUE] L0006 STORE L04,#08 STORE L08,#01 L0006: TEST_ATTR L03,#15 [FALSE] L0007 TEST_ATTR L03,#0d [TRUE] L0007 STORE L04,#08 STORE L08,#01 L0007: TEST_ATTR L03,#03 [FALSE] L0008 TEST_ATTR L03,#0e [TRUE] L0008 GET_PROP_ADDR L03,#08 -> -(SP) JZ (SP)+ [TRUE] L0008 STORE L04,#08 STORE L08,#01 L0008: TEST_ATTR L03,#0c [FALSE] L0009 GET_PROP L03,#15 -> -(SP) JE (SP)+,#ffff [FALSE] L0009 JE L08,#01 [FALSE] L0012 L0009: GET_PROP L03,#15 -> -(SP) JE (SP)+,#ffff [TRUE] L0010 CALL_VS R0049 (L03,#15) -> -(SP) JZ (SP)+ [TRUE] L0010 STORE L07,#01 CLEAR_ATTR L03,#19 DEC L05 JUMP L0012 L0010: CALL_VS R0377 (L03,L04) -> L06 JZ L06 [TRUE] L0012 NEW_LINE CALL_VN R0047 (L03,L04) STORE L07,#01 CLEAR_ATTR L03,#19 DEC L05 TEST_ATTR L03,#14 [FALSE] L0012 GET_CHILD L03 -> -(SP) [FALSE] L0011 L0011: JZ (SP)+ [TRUE] L0012 CALL_2N R0137 (L03) L0012: JUMP L0015 L0013: TEST_ATTR L03,#14 [FALSE] L0015 GET_CHILD L03 -> -(SP) [FALSE] L0014 L0014: JZ (SP)+ [TRUE] L0015 CALL_2N R0137 (L03) L0015: GET_SIBLING L03 -> L03 [TRUE] L0005 L0016: JZ L05 [FALSE] L0017 RFALSE L0017: JZ L01 [TRUE] L0020 NEW_LINE JE L07,#01 [FALSE] L0018 STORE L01,L02 L0018: PRINT_PADDR L01 PRINT " " GET_CHILD L00 -> -(SP) [FALSE] L0019 L0019: CALL_VN R0091 ((SP)+,#0ad8) RET L05 L0020: JE L07,#01 [FALSE] L0021 CALL_VN R0205 (#07,#05,L00) JUMP L0022 L0021: CALL_VN R0205 (#07,#06,L00) L0022: RTRUE Routine R0139, 0 locals Action routine for: "brief" STORE G12,#01 PRINT_PADDR S001 CALL_2N R0205 (#26) RTRUE Routine R0140, 0 locals Action routine for: "long" STORE G12,#02 PRINT_PADDR S001 CALL_2N R0205 (#27) RTRUE Routine R0141, 0 locals Action routine for: "short" STORE G12,#03 PRINT_PADDR S001 CALL_2N R0205 (#28) RTRUE Routine R0142, 1 local STORE L00,G00 JE L00,G13 [TRUE] L0002 GET_PROP L00,#13 -> -(SP) JZ (SP)+ [TRUE] L0001 CALL_VN R0047 (L00,#13) L0001: CALL_1N R0362 CALL_1N R0095 STORE G13,L00 L0002: RTRUE Routine R0143, 0 locals TEST_ATTR G00,#18 [TRUE] L0001 SET_ATTR G00,#18 TEST_ATTR G00,#12 [FALSE] L0001 ADD G06,#05 -> G06 ADD G10,#05 -> G10 L0001: RTRUE Routine R0144, 3 locals Action routine for: "l" GET_PARENT G08 -> -(SP) JZ (SP)+ [FALSE] L0001 CALL_2S R0083 (#0a) -> -(SP) RET_POPPED L0001: CALL_1N R0142 NEW_LINE SET_TEXT_STYLE BOLDFACE CALL_2N R0079 (G00) SET_TEXT_STYLE ROMAN GET_PARENT G08 -> L01 JE G00,#13 [TRUE] L0004 JE L01,G00 [TRUE] L0004 TEST_ATTR L01,#14 [FALSE] L0002 PRINT " (" CALL_VN R0205 (#07,#01) PRINT " " JUMP L0003 L0002: PRINT " (" CALL_VN R0205 (#07,#02) PRINT " " L0003: CALL_2N R0077 (L01) PRINT ")" STORE L02,L01 L0004: JE G0b,#01 [FALSE] L0005 PRINT " (" CALL_VN R0205 (#07,#03) PRINT " " PRINT_OBJ G08 PRINT ")" L0005: NEW_LINE JL G12,#03 [FALSE] L0009 JE L00,#01 [FALSE] L0006 JE G12,#02 [TRUE] L0006 TEST_ATTR G00,#18 [TRUE] L0009 L0006: GET_PROP G00,#15 -> -(SP) JE (SP)+,#ffff [TRUE] L0007 CALL_VN R0049 (G00,#15) JUMP L0009 L0007: GET_PROP G00,#14 -> -(SP) JZ (SP)+ [FALSE] L0008 CALL_VN R0083 (#0b,G00) JUMP L0009 L0008: CALL_VN R0047 (G00,#14) L0009: JE L02,G00 [TRUE] L0010 CALL_2N R0138 (G00) L0010: CALL_2N R0138 (L02) CALL_1N R0363 CALL_1N R0143 STORE G19,#07 CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE RTRUE Routine R0145, 1 local Action routine for: "l at NOUN" "check NOUN" "read NOUN" JE G00,#13 [FALSE] L0001 CALL_VS R0205 (#21,#01) -> -(SP) RET_POPPED L0001: GET_PROP G1e,#14 -> L00 JZ L00 [FALSE] L0004 TEST_ATTR G1e,#03 [FALSE] L0002 CALL_VN R0059 (#29,G1e) RTRUE L0002: TEST_ATTR G1e,#15 [FALSE] L0003 CALL_VN R0205 (#21,#03,G1e) RFALSE L0003: CALL_VS R0205 (#21,#02,G1e) -> -(SP) RET_POPPED L0004: CALL_VN R0047 (G1e,#14) TEST_ATTR G1e,#15 [FALSE] L0005 CALL_VN R0205 (#21,#03,G1e) L0005: CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE RTRUE Routine R0146, 0 locals Action routine for: "l under NOUN" JE G00,#13 [FALSE] L0001 CALL_VS R0205 (#2a,#01) -> -(SP) RET_POPPED L0001: CALL_VN R0205 (#2a,#02) RTRUE Routine R0147, 2 locals Action routine for: "l inside NOUN" "l in NOUN" "l into NOUN" "l through NOUN" "search NOUN" JE G00,#13 [FALSE] L0001 CALL_VS R0205 (#29,#01) -> -(SP) RET_POPPED L0001: GET_CHILD G1e -> -(SP) [FALSE] L0002 L0002: PULL L00 JZ L00 [TRUE] L0005 L0003: TEST_ATTR L00,#02 [TRUE] L0004 STORE L01,#01 L0004: GET_SIBLING L00 -> L00 [TRUE] L0003 L0005: TEST_ATTR G1e,#14 [FALSE] L0007 JZ L01 [FALSE] L0006 CALL_VS R0205 (#29,#02,G1e) -> -(SP) RET_POPPED L0006: CALL_VS R0205 (#29,#03,G1e) -> -(SP) RET_POPPED L0007: TEST_ATTR G1e,#03 [TRUE] L0008 CALL_VS R0205 (#29,#04) -> -(SP) RET_POPPED L0008: TEST_ATTR G1e,#17 [TRUE] L0009 TEST_ATTR G1e,#0e [TRUE] L0009 CALL_VS R0205 (#29,#05) -> -(SP) RET_POPPED L0009: CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE STORE Gef,#00 GET_CHILD G1e -> -(SP) [FALSE] L0011 L0010: INC Gef GET_SIBLING (SP)+ -> -(SP) [TRUE] L0010 L0011: PULL Gee STORE L00,Gef JZ L01 [FALSE] L0012 CALL_VS R0205 (#29,#06,G1e) -> -(SP) RET_POPPED L0012: CALL_VN R0205 (#29,#07,G1e) RTRUE Routine R0148, 0 locals Action routine for: "open NOUN with HELD" "unlock NOUN with HELD" TEST_ATTR G1e,#0a [TRUE] L0001 CALL_VS R0205 (#2b,#01) -> -(SP) RET_POPPED L0001: TEST_ATTR G1e,#0b [TRUE] L0002 CALL_VS R0205 (#2b,#02) -> -(SP) RET_POPPED L0002: GET_PROP G1e,#09 -> -(SP) JE (SP)+,G1f [TRUE] L0003 CALL_VS R0205 (#2b,#03) -> -(SP) RET_POPPED L0003: CLEAR_ATTR G1e,#0b CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_VN R0205 (#2b,#04,G1e) RTRUE Routine R0149, 0 locals Action routine for: "lock NOUN with HELD" TEST_ATTR G1e,#0a [TRUE] L0001 CALL_VS R0205 (#2c,#01) -> -(SP) RET_POPPED L0001: TEST_ATTR G1e,#0b [FALSE] L0002 CALL_VS R0205 (#2c,#02) -> -(SP) RET_POPPED L0002: TEST_ATTR G1e,#0e [FALSE] L0003 CALL_VS R0205 (#2c,#03) -> -(SP) RET_POPPED L0003: GET_PROP G1e,#09 -> -(SP) JE (SP)+,G1f [TRUE] L0004 CALL_VS R0205 (#2c,#04) -> -(SP) RET_POPPED L0004: SET_ATTR G1e,#0b CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_VN R0205 (#2c,#05,G1e) RTRUE Routine R0150, 0 locals Action routine for: "rotate NOUN on" "rotate on NOUN" "switch NOUN" "switch NOUN on" "switch on NOUN" TEST_ATTR G1e,#15 [TRUE] L0001 CALL_VS R0205 (#2d,#01) -> -(SP) RET_POPPED L0001: TEST_ATTR G1e,#0d [FALSE] L0002 CALL_VS R0205 (#2d,#02) -> -(SP) RET_POPPED L0002: SET_ATTR G1e,#0d CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_VN R0205 (#2d,#03,G1e) RTRUE Routine R0151, 0 locals Action routine for: "close off NOUN" "rotate NOUN off" "rotate off NOUN" "switch NOUN off" "switch off NOUN" TEST_ATTR G1e,#15 [TRUE] L0001 CALL_VS R0205 (#2e,#01) -> -(SP) RET_POPPED L0001: TEST_ATTR G1e,#0d [TRUE] L0002 CALL_VS R0205 (#2e,#02) -> -(SP) RET_POPPED L0002: CLEAR_ATTR G1e,#0d CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_VN R0205 (#2e,#03,G1e) RTRUE Routine R0152, 0 locals Action routine for: "open NOUN" TEST_ATTR G1e,#0f [TRUE] L0001 CALL_VS R0205 (#2f,#01) -> -(SP) RET_POPPED L0001: TEST_ATTR G1e,#0b [FALSE] L0002 CALL_VS R0205 (#2f,#02) -> -(SP) RET_POPPED L0002: TEST_ATTR G1e,#0e [FALSE] L0003 CALL_VS R0205 (#2f,#03) -> -(SP) RET_POPPED L0003: SET_ATTR G1e,#0e CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE TEST_ATTR G1e,#03 [FALSE] L0005 TEST_ATTR G1e,#17 [TRUE] L0005 GET_CHILD G1e -> -(SP) [FALSE] L0004 L0004: JZ (SP)+ [TRUE] L0005 CALL_VS R0205 (#2f,#04,G1e) -> -(SP) RET_POPPED L0005: CALL_VN R0205 (#2f,#05,G1e) RTRUE Routine R0153, 0 locals Action routine for: "close NOUN" "close up" TEST_ATTR G1e,#0f [TRUE] L0001 CALL_VS R0205 (#30,#01) -> -(SP) RET_POPPED L0001: TEST_ATTR G1e,#0e [TRUE] L0002 CALL_VS R0205 (#30,#02) -> -(SP) RET_POPPED L0002: CLEAR_ATTR G1e,#0e CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_VN R0205 (#30,#03,G1e) RTRUE Routine R0154, 0 locals Action routine for: "carry off ATTRIBUTE(26)" "remove HELD" "disrobe HELD" TEST_ATTR G1e,#1a [TRUE] L0001 CALL_VS R0205 (#1d,#01) -> -(SP) RET_POPPED L0001: CLEAR_ATTR G1e,#1a CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_VN R0205 (#1d,#02,G1e) RTRUE Routine R0155, 0 locals Action routine for: "don HELD" "put on HELD" TEST_ATTR G1e,#01 [TRUE] L0001 CALL_VS R0205 (#31,#01) -> -(SP) RET_POPPED L0001: GET_PARENT G1e -> -(SP) JE (SP)+,G08 [TRUE] L0002 CALL_VS R0205 (#31,#02) -> -(SP) RET_POPPED L0002: TEST_ATTR G1e,#1a [FALSE] L0003 CALL_VS R0205 (#31,#03) -> -(SP) RET_POPPED L0003: SET_ATTR G1e,#1a CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_VN R0205 (#31,#04,G1e) RTRUE Routine R0156, 0 locals Action routine for: "eat HELD" TEST_ATTR G1e,#05 [TRUE] L0001 CALL_VS R0205 (#32,#01) -> -(SP) RET_POPPED L0001: REMOVE_OBJ G1e CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE JE G78,#01 [TRUE] RTRUE CALL_VN R0205 (#32,#02,G1e) RTRUE Routine R0157, 0 locals Action routine for: "y" CALL_2N R0205 (#33) RTRUE Routine R0158, 0 locals Action routine for: "no" CALL_2N R0205 (#34) RTRUE Routine R0159, 0 locals Action routine for: "burn NOUN" "burn NOUN with HELD" CALL_2N R0205 (#35) RTRUE Routine R0160, 0 locals Action routine for: "pray" CALL_2N R0205 (#36) RTRUE Routine R0161, 0 locals Action routine for: "awake" "awake up" CALL_2N R0205 (#37) RTRUE Routine R0162, 0 locals Action routine for: "awake CREATURE" "awake CREATURE up" "awake up CREATURE" CALL_VS R0060 (G1e,#38) -> -(SP) JZ (SP)+ [FALSE] RFALSE CALL_2N R0205 (#38) RTRUE Routine R0163, 0 locals Action routine for: "think" CALL_2N R0205 (#39) RTRUE Routine R0164, 0 locals Action routine for: "smell" "smell NOUN" CALL_2N R0205 (#3a) RTRUE Routine R0165, 0 locals Action routine for: "hear" "hear NOUN" "hear to NOUN" CALL_2N R0205 (#3b) RTRUE Routine R0166, 0 locals Action routine for: "taste NOUN" CALL_2N R0205 (#3c) RTRUE Routine R0167, 0 locals Action routine for: "dig NOUN" "dig NOUN with HELD" CALL_2N R0205 (#3d) RTRUE Routine R0168, 0 locals Action routine for: "chop NOUN" CALL_2N R0205 (#3e) RTRUE Routine R0169, 0 locals Action routine for: "hop" CALL_2N R0205 (#3f) RTRUE Routine R0170, 0 locals Action routine for: "hop over NOUN" CALL_2N R0205 (#40) RTRUE Routine R0171, 0 locals Action routine for: "attach NOUN" "attach NOUN to NOUN" CALL_2N R0205 (#41) RTRUE Routine R0172, 0 locals Action routine for: "drink NOUN" CALL_2N R0205 (#42) RTRUE Routine R0173, 0 locals Action routine for: "fill NOUN" CALL_2N R0205 (#43) RTRUE Routine R0174, 0 locals Action routine for: "sorry" CALL_2N R0205 (#44) RTRUE Routine R0175, 0 locals Action routine for: "damn" "damn SPECIAL" CALL_2N R0205 (#45) RTRUE Routine R0176, 0 locals Action routine for: "bother" "bother SPECIAL" CALL_2N R0205 (#46) RTRUE Routine R0177, 0 locals Action routine for: "dive" CALL_2N R0205 (#47) RTRUE Routine R0178, 0 locals Action routine for: "swing NOUN" "swing on NOUN" CALL_2N R0205 (#48) RTRUE Routine R0179, 0 locals Action routine for: "blow HELD" CALL_2N R0205 (#49) RTRUE Routine R0180, 0 locals Action routine for: "clean NOUN" CALL_2N R0205 (#4a) RTRUE Routine R0181, 0 locals Action routine for: "adjust NOUN" CALL_2N R0205 (#4b) RTRUE Routine R0182, 0 locals Action routine for: "adjust NOUN to SPECIAL" CALL_2N R0205 (#4c) RTRUE Routine R0183, 0 locals Action routine for: "wave" CALL_2N R0205 (#4d) RTRUE Routine R0184, 0 locals Action routine for: "buy NOUN" CALL_2N R0205 (#4e) RTRUE Routine R0185, 0 locals Action routine for: "sing" CALL_2N R0205 (#4f) RTRUE Routine R0186, 0 locals Action routine for: "climb NOUN" "climb up NOUN" "climb over NOUN" CALL_2N R0205 (#50) RTRUE Routine R0187, 0 locals Action routine for: "nap" CALL_2N R0205 (#51) RTRUE Routine R0188, 0 locals Action routine for: "l up TEXT [parse 1] in NOUN" "consult NOUN about TEXT [parse 2]" "consult NOUN on TEXT [parse 2]" "read about TEXT [parse 1] in NOUN" "read TEXT [parse 1] in NOUN" CALL_VN R0205 (#52,#01,G1e) RTRUE Routine R0189, 0 locals Action routine for: "feel NOUN" JE G1e,G08 [FALSE] L0001 CALL_VS R0205 (#53,#03) -> -(SP) RET_POPPED L0001: TEST_ATTR G1e,#00 [FALSE] L0002 CALL_VS R0205 (#53,#01) -> -(SP) RET_POPPED L0002: CALL_VN R0205 (#53,#02) RTRUE Routine R0190, 0 locals Action routine for: "wave NOUN" GET_PARENT G1e -> -(SP) JE (SP)+,G08 [TRUE] L0001 CALL_VS R0205 (#54,#01) -> -(SP) RET_POPPED L0001: CALL_VN R0205 (#54,#02,G1e) RTRUE Routine R0191, 0 locals Action routine for: "drag NOUN" TEST_ATTR G1e,#13 [FALSE] L0001 CALL_VS R0205 (#55,#01) -> -(SP) RET_POPPED L0001: TEST_ATTR G1e,#11 [FALSE] L0002 CALL_VS R0205 (#55,#02) -> -(SP) RET_POPPED L0002: TEST_ATTR G1e,#00 [FALSE] L0003 CALL_VS R0205 (#55,#04) -> -(SP) RET_POPPED L0003: CALL_VN R0205 (#55,#03) RTRUE Routine R0192, 0 locals Action routine for: "clear NOUN" TEST_ATTR G1e,#13 [FALSE] L0001 CALL_VS R0205 (#56,#01) -> -(SP) RET_POPPED L0001: TEST_ATTR G1e,#11 [FALSE] L0002 CALL_VS R0205 (#56,#02) -> -(SP) RET_POPPED L0002: TEST_ATTR G1e,#00 [FALSE] L0003 CALL_VS R0205 (#55,#04) -> -(SP) RET_POPPED L0003: CALL_VN R0205 (#56,#03) RTRUE Routine R0193, 0 locals Action routine for: "rotate NOUN" TEST_ATTR G1e,#13 [FALSE] L0001 CALL_VS R0205 (#57,#01) -> -(SP) RET_POPPED L0001: TEST_ATTR G1e,#11 [FALSE] L0002 CALL_VS R0205 (#57,#02) -> -(SP) RET_POPPED L0002: TEST_ATTR G1e,#00 [FALSE] L0003 CALL_VS R0205 (#55,#04) -> -(SP) RET_POPPED L0003: CALL_VN R0205 (#57,#03) RTRUE Routine R0194, 0 locals Action routine for: "wait" CALL_1S R0058 -> -(SP) JE (SP)+,#01 [TRUE] RTRUE CALL_2N R0205 (#58) RTRUE Routine R0195, 0 locals Action routine for: "clear NOUN NOUN" CALL_VN R0205 (#59,#01) RTRUE Routine R0196, 1 local GET_PARENT G1f -> -(SP) JE (SP)+,#06 [TRUE] L0001 CALL_VS R0205 (#59,#02) -> -(SP) RET_POPPED L0001: JE G1f,#0f,#10 [FALSE] L0002 CALL_VS R0205 (#59,#03) -> -(SP) RET_POPPED L0002: CALL_1N R0058 STORE L00,G1e INSERT_OBJ L00,G08 CALL_VN R0059 (#00,G1f) JE G00,#13 [FALSE] L0003 INSERT_OBJ L00,G0a JUMP L0004 L0003: INSERT_OBJ L00,G00 L0004: RTRUE Routine R0197, 0 locals Action routine for: "squash NOUN" TEST_ATTR G1e,#00 [FALSE] L0001 CALL_VS R0205 (#5a,#01) -> -(SP) RET_POPPED L0001: CALL_VN R0205 (#5a,#02) RTRUE Routine R0198, 0 locals Action routine for: "discard HELD at NOUN" "discard HELD against NOUN" JG G1f,#01 [FALSE] L0002 STORE G19,#0102 CALL_VS R0049 (G1f,#04) -> -(SP) JZ (SP)+ [TRUE] L0001 STORE G19,#5b RTRUE L0001: STORE G19,#5b L0002: TEST_ATTR G1f,#00 [TRUE] L0003 CALL_VS R0205 (#5b,#01) -> -(SP) RET_POPPED L0003: CALL_VS R0060 (G1f,#5b) -> -(SP) JZ (SP)+ [FALSE] RFALSE CALL_VN R0205 (#5b,#02) RTRUE Routine R0199, 0 locals Action routine for: "attack NOUN" TEST_ATTR G1e,#00 [FALSE] L0001 CALL_VS R0060 (G1e,#5c) -> -(SP) JZ (SP)+ [FALSE] RFALSE L0001: CALL_2N R0205 (#5c) RTRUE Routine R0200, 0 locals Action routine for: "embrace CREATURE" CALL_VS R0060 (G1e,#5d) -> -(SP) JZ (SP)+ [FALSE] RFALSE JE G1e,G08 [FALSE] L0001 CALL_VS R0205 (#53,#03) -> -(SP) RET_POPPED L0001: CALL_2N R0205 (#5d) RTRUE Routine R0201, 0 locals Action routine for: "answer TEXT [parse 2] to CREATURE" CALL_VS R0060 (G1f,#02) -> -(SP) JZ (SP)+ [FALSE] RFALSE CALL_2N R0205 (#02) RTRUE Routine R0202, 0 locals Action routine for: "tell CREATURE about TEXT [parse 2]" JE G1e,G08 [FALSE] L0001 CALL_2S R0205 (#05) -> -(SP) RET_POPPED L0001: CALL_VS R0060 (G1e,#05) -> -(SP) JZ (SP)+ [FALSE] RFALSE CALL_VN R0205 (#05,#02) RTRUE Routine R0203, 0 locals Action routine for: "ask CREATURE about TEXT [parse 2]" CALL_VS R0060 (G1e,#03) -> -(SP) JZ (SP)+ [FALSE] RFALSE CALL_2N R0205 (#03) RTRUE Routine R0204, 0 locals Action routine for: "ask CREATURE for NOUN" JE G1e,G08 [FALSE] L0001 CALL_2N R0059 (#19) RTRUE L0001: CALL_VN R0205 (#0103,#01,G1e) RTRUE Routine R0205, 4 locals STORE L03,Ge9 STORE Ge9,L00 JZ L01 [FALSE] L0001 STORE L01,#01 L0001: CALL_VN R0206 (L01,L02) STORE Ge9,L03 RTRUE Routine R0206, 3 locals STORE L02,G19 JE Ge9,#0107 [FALSE] L0001 PRINT " >" RTRUE L0001: JE Ge9,#0106 [FALSE] L0020 JE L00,#01 [FALSE] L0002 PRINT_RET "(considering the first sixteen objects only) " L0002: JE L00,#02 [FALSE] L0003 PRINT_RET "Nothing to do!" L0003: JE L00,#03 [FALSE] L0004 PRINT " You have died " RTRUE L0004: JE L00,#04 [FALSE] L0005 PRINT " You have won " RTRUE L0005: JE L00,#05 [FALSE] L0008 PRINT " Would you like to RESTART, RESTORE a saved game" JZ #00 [TRUE] L0006 PRINT ", give the FULL score for that game" L0006: JE G0c,#02 [FALSE] L0007 JZ #01 [TRUE] L0007 PRINT ", see some suggestions for AMUSING things to do" L0007: PRINT_RET " or QUIT?" L0008: JE L00,#06 [FALSE] L0009 PRINT_RET "[Your interpreter does not provide "undo". Sorry!]" L0009: JE L00,#07 [FALSE] L0010 PRINT_RET ""Undo" failed. [Not all interpreters provide it.]" L0010: JE L00,#08 [FALSE] L0011 PRINT_RET "Please give one of the answers above." L0011: JE L00,#09 [FALSE] L0012 PRINT_RET " It is now pitch dark in here!" L0012: JE L00,#0a [FALSE] L0013 PRINT_RET "I beg your pardon?" L0013: JE L00,#0b [FALSE] L0014 PRINT_RET "[You can't "undo" what hasn't been done!]" L0014: JE L00,#0c [FALSE] L0015 PRINT_RET "[Can't "undo" twice in succession. Sorry!]" L0015: JE L00,#0d [FALSE] L0016 PRINT_RET "[Previous turn undone.]" L0016: JE L00,#0e [FALSE] L0017 PRINT_RET "Sorry, that can't be corrected." L0017: JE L00,#0f [FALSE] L0018 PRINT_RET "Think nothing of it." L0018: JE L00,#10 [FALSE] L0019 PRINT_RET ""Oops" can only correct a single word." L0019: RTRUE L0020: JE Ge9,#0103 [FALSE] L0021 CALL_2N R0078 (L01) PRINT_RET " has better things to do." L0021: JE Ge9,#0c [FALSE] L0023 JE L00,#01 [FALSE] L0022 PRINT "Please answer yes or no." RTRUE L0022: PRINT "Are you sure you want to quit? " RTRUE L0023: JE Ge9,#0d [FALSE] L0025 JE L00,#01 [FALSE] L0024 PRINT "Are you sure you want to restart? " RTRUE L0024: PRINT_RET "Failed." L0025: JE Ge9,#0e [FALSE] L0027 JE L00,#01 [FALSE] L0026 PRINT_RET "Restore failed." L0026: PRINT_RET "Ok." L0027: JE Ge9,#0f [FALSE] L0029 JE L00,#01 [FALSE] L0028 PRINT_RET "Save failed." L0028: PRINT_RET "Ok." L0029: JE Ge9,#10 [FALSE] L0031 JE L00,#01 [FALSE] L0030 PRINT_RET "The game file has verified as intact." L0030: PRINT_RET "The game file did not verify properly, and may be corrupted (or you may be running it on a very primitive interpreter which is unable properly to perform the test)." L0031: JE Ge9,#11 [FALSE] L0033 JE L00,#01 [FALSE] L0032 PRINT_RET "Transcripting is already on." L0032: PRINT_RET "Start of a transcript of" L0033: JE Ge9,#12 [FALSE] L0035 JE L00,#01 [FALSE] L0034 PRINT_RET "Transcripting is already off." L0034: PRINT_RET " End of transcript." L0035: JE Ge9,#13 [FALSE] L0036 PRINT_RET "Score notification on." L0036: JE Ge9,#14 [FALSE] L0037 PRINT_RET "Score notification off." L0037: JE Ge9,#15 [FALSE] L0038 PRINT "You have visited: " RTRUE L0038: JE Ge9,#16 [FALSE] L0040 JE L00,#01 [FALSE] L0039 PRINT_RET "Objects you have handled: " L0039: PRINT_RET "None." L0040: JE Ge9,#17 [FALSE] L0044 JZ G0c [FALSE] L0041 PRINT "You have so far scored " JUMP L0042 L0041: PRINT "In that game you scored " L0042: PRINT_NUM G06 PRINT " out of a possible " PRINT_NUM #015e PRINT ", in " PRINT_NUM G07 PRINT " turn" JG G07,#01 [FALSE] L0043 PRINT "s" L0043: RTRUE L0044: JE Ge9,#18 [FALSE] L0050 JE L00,#01 [FALSE] L0047 JZ G0c [FALSE] L0045 PRINT "The score is " JUMP L0046 L0045: PRINT "The score was " L0046: PRINT_RET "made up as follows: " L0047: JE L00,#02 [FALSE] L0048 PRINT_RET "finding sundry items" L0048: JE L00,#03 [FALSE] L0049 PRINT_RET "visiting various places" L0049: PRINT "total (out of " PRINT_NUM #015e PRINT_RET ")" L0050: JE Ge9,#19 [FALSE] L0052 JE L00,#01 [FALSE] L0051 PRINT_RET "You are carrying nothing." L0051: PRINT "You are carrying" RTRUE L0052: JE Ge9,#01 [FALSE] L0067 JE L00,#01 [FALSE] L0053 PRINT_RET "Taken." L0053: JE L00,#02 [FALSE] L0054 PRINT_RET "You are always self-possessed." L0054: JE L00,#03 [FALSE] L0055 PRINT "I don't suppose " CALL_2N R0077 (L01) PRINT_RET " would care for that." L0055: JE L00,#04 [FALSE] L0058 PRINT "You'd have to get " TEST_ATTR L01,#14 [FALSE] L0056 PRINT "off " JUMP L0057 L0056: PRINT "out of " L0057: CALL_2N R0077 (L01) PRINT_RET " first." L0058: JE L00,#05 [FALSE] L0059 PRINT_RET "You already have that." L0059: JE L00,#06 [FALSE] L0060 PRINT "That seems to belong to " CALL_2N R0077 (L01) PRINT_RET "." L0060: JE L00,#07 [FALSE] L0061 PRINT "That seems to be a part of " CALL_2N R0077 (L01) PRINT_RET "." L0061: JE L00,#08 [FALSE] L0062 PRINT_RET "That isn't available." L0062: JE L00,#09 [FALSE] L0063 CALL_2N R0078 (L01) PRINT_RET " is not open." L0063: JE L00,#0a [FALSE] L0064 PRINT_RET "That's hardly portable." L0064: JE L00,#0b [FALSE] L0065 PRINT_RET "That's fixed in place." L0065: JE L00,#0c [FALSE] L0066 PRINT_RET "You're carrying too many things already." L0066: PRINT "(putting " CALL_2N R0077 (L01) PRINT " into " CALL_2N R0077 (#00) PRINT_RET " to make room)" L0067: JE Ge9,#1c [FALSE] L0071 JE L00,#01 [FALSE] L0068 PRINT_RET "Already on the floor." L0068: JE L00,#02 [FALSE] L0069 PRINT_RET "You haven't got that." L0069: JE L00,#03 [FALSE] L0070 PRINT "(first taking " CALL_2N R0077 (L01) PRINT_RET " off)" L0070: PRINT_RET "Dropped." L0071: JE Ge9,#06 [FALSE] L0074 JE L00,#01 [FALSE] L0072 PRINT_RET "It is unfortunately closed." L0072: JE L00,#02 [FALSE] L0073 PRINT_RET "But it isn't there now." L0073: PRINT_RET "Removed." L0074: JE Ge9,#1e [FALSE] L0082 JE L00,#01 [FALSE] L0075 PRINT "You need to be holding " CALL_2N R0077 (L01) PRINT_RET " before you can put it on top of something else." L0075: JE L00,#02 [FALSE] L0076 PRINT_RET "You can't put something on top of itself." L0076: JE L00,#03 [FALSE] L0077 PRINT "Putting things on " CALL_2N R0077 (L01) PRINT_RET " would achieve nothing." L0077: JE L00,#04 [FALSE] L0078 PRINT_RET "You lack the dexterity." L0078: JE L00,#05 [FALSE] L0079 PRINT_RET "(first taking it off) " L0079: JE L00,#06 [FALSE] L0080 PRINT "There is no more room on " CALL_2N R0077 (L01) PRINT_RET "." L0080: JE L00,#07 [FALSE] L0081 PRINT_RET "Done." L0081: PRINT "You put " CALL_2N R0077 (L01) PRINT " on " CALL_2N R0077 (G1f) PRINT_RET "." L0082: JE Ge9,#1b [FALSE] L0091 JE L00,#01 [FALSE] L0083 PRINT_RET "You need to be holding it before you can put it into something else." L0083: JE L00,#02 [FALSE] L0084 PRINT_RET "That can't contain things." L0084: JE L00,#03 [FALSE] L0085 PRINT_RET "Alas, it is closed." L0085: JE L00,#04 [FALSE] L0086 PRINT_RET "You'll need to take it off first." L0086: JE L00,#05 [FALSE] L0087 PRINT_RET "You can't put something inside itself." L0087: JE L00,#06 [FALSE] L0088 PRINT_RET "(first taking it off) " L0088: JE L00,#07 [FALSE] L0089 PRINT "There is no more room in " CALL_2N R0077 (L01) PRINT_RET "." L0089: JE L00,#08 [FALSE] L0090 PRINT_RET "Done." L0090: PRINT "You put " CALL_2N R0077 (L01) PRINT " into " CALL_2N R0077 (G1f) PRINT_RET "." L0091: JE Ge9,#1f [FALSE] L0093 JE L00,#01 [FALSE] L0092 PRINT_RET "That isn't in your possession." L0092: PRINT_RET "First pick that up." L0093: JE Ge9,#20 [FALSE] L0096 JE L00,#01 [FALSE] L0094 CALL_2N R0078 (L01) PRINT_RET " can't contain things." L0094: JE L00,#02 [FALSE] L0095 CALL_2N R0078 (L01) PRINT_RET " is closed." L0095: CALL_2N R0078 (L01) PRINT_RET " is empty already." L0096: JE Ge9,#0a [FALSE] L0099 JE L00,#01 [FALSE] L0097 PRINT "You aren't holding " CALL_2N R0077 (L01) PRINT_RET "." L0097: JE L00,#02 [FALSE] L0098 PRINT "You juggle " CALL_2N R0077 (L01) PRINT_RET " for a while, but don't achieve much." L0098: CALL_2N R0078 (L01) PRINT_RET " doesn't seem interested." L0099: JE Ge9,#0b [FALSE] L0101 JE L00,#01 [FALSE] L0100 PRINT "You aren't holding " CALL_2N R0077 (L01) PRINT_RET "." L0100: CALL_2N R0078 (L01) PRINT_RET " is unimpressed." L0101: JE Ge9,#22 [FALSE] L0110 JE L00,#01 [FALSE] L0104 PRINT "But you're already " TEST_ATTR L01,#14 [FALSE] L0102 PRINT "on " JUMP L0103 L0102: PRINT "in " L0103: CALL_2N R0077 (L01) PRINT_RET "." L0104: JE L00,#02 [FALSE] L0105 PRINT_RET "That's not something you can enter." L0105: JE L00,#03 [FALSE] L0106 PRINT "You can't get into the closed " CALL_2N R0079 (L01) PRINT_RET "." L0106: JE L00,#04 [FALSE] L0107 PRINT_RET "You can only get into something on the floor." L0107: PRINT "You get " TEST_ATTR L01,#14 [FALSE] L0108 PRINT "onto " JUMP L0109 L0108: PRINT "into " L0109: CALL_2N R0077 (L01) PRINT_RET "." L0110: JE Ge9,#24 [FALSE] L0111 PRINT "But you aren't on " CALL_2N R0077 (L01) PRINT_RET " at the moment." L0111: JE Ge9,#23 [FALSE] L0116 JE L00,#01 [FALSE] L0112 PRINT_RET "But you aren't in anything at the moment." L0112: JE L00,#02 [FALSE] L0113 PRINT "You can't get out of the closed " CALL_2N R0079 (L01) PRINT_RET "." L0113: PRINT "You get " TEST_ATTR L01,#14 [FALSE] L0114 PRINT "off " JUMP L0115 L0114: PRINT "out of " L0115: CALL_2N R0077 (L01) PRINT_RET "." L0116: JE Ge9,#25 [FALSE] L0117 PRINT_RET "You'll have to say which compass direction to go in." L0117: JE Ge9,#00 [FALSE] L0125 JE L00,#01 [FALSE] L0120 PRINT "You'll have to get " TEST_ATTR L01,#14 [FALSE] L0118 PRINT "off " JUMP L0119 L0118: PRINT "out of " L0119: CALL_2N R0077 (L01) PRINT_RET " first." L0120: JE L00,#02 [FALSE] L0121 PRINT_RET "You can't go that way." L0121: JE L00,#03 [FALSE] L0122 PRINT "You are unable to climb " CALL_2N R0077 (L01) PRINT_RET "." L0122: JE L00,#04 [FALSE] L0123 PRINT "You are unable to descend " CALL_2N R0077 (L01) PRINT_RET "." L0123: JE L00,#05 [FALSE] L0124 PRINT "You can't, since " CALL_2N R0077 (L01) PRINT_RET " is in the way." L0124: PRINT "You can't, since " CALL_2N R0077 (L01) PRINT_RET " leads nowhere." L0125: JE Ge9,#26 [FALSE] L0126 PRINT_RET " is now in its normal "brief" printing mode, which gives long descriptions of places never before visited and short descriptions otherwise." L0126: JE Ge9,#27 [FALSE] L0127 PRINT_RET " is now in its "verbose" mode, which always gives long descriptions of locations (even if you've been there before)." L0127: JE Ge9,#28 [FALSE] L0128 PRINT_RET " is now in its "superbrief" mode, which always gives short descriptions of locations (even if you haven't been there before)." L0128: JE Ge9,#07 [FALSE] L0141 JE L00,#01 [FALSE] L0129 PRINT "on" RFALSE L0129: JE L00,#02 [FALSE] L0130 PRINT "in" RFALSE L0130: JE L00,#03 [FALSE] L0131 PRINT "as" RFALSE L0131: JE L00,#04 [FALSE] L0133 PRINT " On " CALL_2N R0077 (L01) GET_CHILD L01 -> -(SP) [FALSE] L0132 L0132: CALL_VN R0091 ((SP)+,#0cd8) PRINT_RET "." L0133: JE L01,G00 [TRUE] L0136 TEST_ATTR L01,#14 [FALSE] L0134 PRINT " On " JUMP L0135 L0134: PRINT " In " L0135: CALL_2N R0077 (L01) PRINT " you" JUMP L0137 L0136: PRINT " You" L0137: PRINT " can " JE L00,#05 [FALSE] L0138 PRINT "also " L0138: PRINT "see " GET_CHILD L01 -> -(SP) [FALSE] L0139 L0139: CALL_VN R0091 ((SP)+,#0ad8) JE L01,G00 [TRUE] L0140 PRINT_RET "." L0140: PRINT_RET " here." L0141: JE Ge9,#21 [FALSE] L0145 JE L00,#01 [FALSE] L0142 PRINT_RET "Darkness, noun. An absence of light to see by." L0142: JE L00,#02 [FALSE] L0143 PRINT "You see nothing special about " CALL_2N R0077 (L01) PRINT_RET "." L0143: CALL_2N R0078 (L01) PRINT " is currently switched " TEST_ATTR L01,#0d [FALSE] L0144 PRINT_RET "on." L0144: PRINT_RET "off." RTRUE L0145: JE Ge9,#2a [FALSE] L0147 JE L00,#01 [FALSE] L0146 PRINT_RET "But it's dark." L0146: PRINT_RET "You find nothing of interest." L0147: JE Ge9,#29 [FALSE] L0156 JE L00,#01 [FALSE] L0148 PRINT_RET "But it's dark." L0148: JE L00,#02 [FALSE] L0149 PRINT "There is nothing on " CALL_2N R0077 (L01) PRINT_RET "." L0149: JE L00,#03 [FALSE] L0151 PRINT "On " CALL_2N R0077 (L01) GET_CHILD L01 -> -(SP) [FALSE] L0150 L0150: CALL_VN R0091 ((SP)+,#0c48) PRINT_RET "." L0151: JE L00,#04 [FALSE] L0152 PRINT_RET "You find nothing of interest." L0152: JE L00,#05 [FALSE] L0153 PRINT_RET "You can't see inside, since it is closed." L0153: JE L00,#06 [FALSE] L0154 CALL_2N R0078 (L01) PRINT_RET " is empty." L0154: PRINT "In " CALL_2N R0077 (L01) GET_CHILD L01 -> -(SP) [FALSE] L0155 L0155: CALL_VN R0091 ((SP)+,#0c48) PRINT_RET "." L0156: JE Ge9,#2b [FALSE] L0160 JE L00,#01 [FALSE] L0157 PRINT_RET "That doesn't seem to be something you can unlock." L0157: JE L00,#02 [FALSE] L0158 PRINT_RET "It's unlocked at the moment." L0158: JE L00,#03 [FALSE] L0159 PRINT_RET "That doesn't seem to fit the lock." L0159: PRINT "You unlock " CALL_2N R0077 (L01) PRINT_RET "." L0160: JE Ge9,#2c [FALSE] L0165 JE L00,#01 [FALSE] L0161 PRINT_RET "That doesn't seem to be something you can lock." L0161: JE L00,#02 [FALSE] L0162 PRINT_RET "It's locked at the moment." L0162: JE L00,#03 [FALSE] L0163 PRINT_RET "First you'll have to close it." L0163: JE L00,#04 [FALSE] L0164 PRINT_RET "That doesn't seem to fit the lock." L0164: PRINT "You lock " CALL_2N R0077 (L01) PRINT_RET "." L0165: JE Ge9,#2d [FALSE] L0168 JE L00,#01 [FALSE] L0166 PRINT_RET "That's not something you can switch." L0166: JE L00,#02 [FALSE] L0167 PRINT_RET "That's already on." L0167: PRINT "You switch " CALL_2N R0077 (L01) PRINT_RET " on." L0168: JE Ge9,#2e [FALSE] L0171 JE L00,#01 [FALSE] L0169 PRINT_RET "That's not something you can switch." L0169: JE L00,#02 [FALSE] L0170 PRINT_RET "That's already off." L0170: PRINT "You switch " CALL_2N R0077 (L01) PRINT_RET " off." L0171: JE Ge9,#2f [FALSE] L0178 JE L00,#01 [FALSE] L0172 PRINT_RET "That's not something you can open." L0172: JE L00,#02 [FALSE] L0173 PRINT_RET "It seems to be locked." L0173: JE L00,#03 [FALSE] L0174 PRINT_RET "It's already open." L0174: JE L00,#04 [FALSE] L0177 PRINT "You open " CALL_2N R0077 (L01) PRINT ", revealing " GET_CHILD L01 -> -(SP) [FALSE] L0175 L0175: CALL_VS R0091 ((SP)+,#0848) -> -(SP) JZ (SP)+ [FALSE] L0176 PRINT_RET "nothing." L0176: PRINT_RET "." L0177: PRINT "You open " CALL_2N R0077 (L01) PRINT_RET "." L0178: JE Ge9,#30 [FALSE] L0181 JE L00,#01 [FALSE] L0179 PRINT_RET "That's not something you can close." L0179: JE L00,#02 [FALSE] L0180 PRINT_RET "It's already closed." L0180: PRINT "You close " CALL_2N R0077 (L01) PRINT_RET "." L0181: JE Ge9,#1d [FALSE] L0183 JE L00,#01 [FALSE] L0182 PRINT_RET "You're not wearing that." L0182: PRINT "You take off " CALL_2N R0077 (L01) PRINT_RET "." L0183: JE Ge9,#31 [FALSE] L0187 JE L00,#01 [FALSE] L0184 PRINT_RET "You can't wear that!" L0184: JE L00,#02 [FALSE] L0185 PRINT_RET "You're not holding that!" L0185: JE L00,#03 [FALSE] L0186 PRINT_RET "You're already wearing that!" L0186: PRINT "You put on " CALL_2N R0077 (L01) PRINT_RET "." L0187: JE Ge9,#32 [FALSE] L0189 JE L00,#01 [FALSE] L0188 PRINT_RET "That's plainly inedible." L0188: PRINT "You eat " CALL_2N R0077 (L01) PRINT_RET ". Not bad." L0189: JE Ge9,#33,#34 [FALSE] L0190 PRINT_RET "That was a rhetorical question." L0190: JE Ge9,#35 [FALSE] L0191 PRINT_RET "This dangerous act would achieve little." L0191: JE Ge9,#36 [FALSE] L0192 PRINT_RET "Nothing practical results from your prayer." L0192: JE Ge9,#37 [FALSE] L0193 PRINT_RET "The dreadful truth is, this is not a dream." L0193: JE Ge9,#38 [FALSE] L0194 PRINT_RET "That seems unnecessary." L0194: JE Ge9,#5d [FALSE] L0195 PRINT_RET "Keep your mind on the game." L0195: JE Ge9,#39 [FALSE] L0196 PRINT_RET "What a good idea." L0196: JE Ge9,#3a [FALSE] L0197 PRINT_RET "You smell nothing unexpected." L0197: JE Ge9,#3b [FALSE] L0198 PRINT_RET "You hear nothing unexpected." L0198: JE Ge9,#3c [FALSE] L0199 PRINT_RET "You taste nothing unexpected." L0199: JE Ge9,#53 [FALSE] L0202 JE L00,#01 [FALSE] L0200 PRINT_RET "Keep your hands to yourself!" L0200: JE L00,#03 [FALSE] L0201 PRINT_RET "If you think that'll help." L0201: PRINT_RET "You feel nothing unexpected." L0202: JE Ge9,#3d [FALSE] L0203 PRINT_RET "Digging would achieve nothing here." L0203: JE Ge9,#3e [FALSE] L0204 PRINT_RET "Cutting that up would achieve little." L0204: JE Ge9,#3f [FALSE] L0205 PRINT_RET "You jump on the spot, fruitlessly." L0205: JE Ge9,#40,#41 [FALSE] L0206 PRINT_RET "You would achieve nothing by this." L0206: JE Ge9,#42 [FALSE] L0207 PRINT_RET "There's nothing suitable to drink here." L0207: JE Ge9,#43 [FALSE] L0208 PRINT_RET "But there's no water here to carry." L0208: JE Ge9,#44 [FALSE] L0209 PRINT_RET "Oh, don't apologise." L0209: JE Ge9,#45 [FALSE] L0210 PRINT_RET "Real adventurers do not use such language." L0210: JE Ge9,#46 [FALSE] L0211 PRINT_RET "Quite." L0211: JE Ge9,#5c [FALSE] L0212 PRINT_RET "Violence isn't the answer to this one." L0212: JE Ge9,#47 [FALSE] L0213 PRINT_RET "There's not enough water to swim in." L0213: JE Ge9,#48 [FALSE] L0214 PRINT_RET "There's nothing sensible to swing here." L0214: JE Ge9,#49 [FALSE] L0215 PRINT_RET "You can't usefully blow that." L0215: JE Ge9,#4a [FALSE] L0216 PRINT_RET "You achieve nothing by this." L0216: JE Ge9,#4b [FALSE] L0217 PRINT_RET "No, you can't set that." L0217: JE Ge9,#4c [FALSE] L0218 PRINT_RET "No, you can't set that to anything." L0218: JE Ge9,#4d [FALSE] L0219 PRINT_RET "You wave, feeling foolish." L0219: JE Ge9,#54 [FALSE] L0221 JE L00,#01 [FALSE] L0220 PRINT_RET "But you aren't holding that." L0220: PRINT "You look ridiculous waving " CALL_2N R0077 (L01) PRINT_RET "." L0221: JE Ge9,#55,#56,#57 [FALSE] L0225 JE L00,#01 [FALSE] L0222 PRINT_RET "It is fixed in place." L0222: JE L00,#02 [FALSE] L0223 PRINT_RET "You are unable to." L0223: JE L00,#04 [FALSE] L0224 PRINT_RET "That would be less than courteous." L0224: PRINT_RET "Nothing obvious happens." L0225: JE Ge9,#59 [FALSE] L0228 JE L00,#01 [FALSE] L0226 PRINT_RET "Is that the best you can think of?" L0226: JE L00,#02 [FALSE] L0227 PRINT_RET "That's not a direction." L0227: PRINT_RET "Not that way you can't." L0228: JE Ge9,#5a [FALSE] L0230 JE L00,#01 [FALSE] L0229 PRINT_RET "Keep your hands to yourself." L0229: PRINT_RET "You achieve nothing by this." L0230: JE Ge9,#5b [FALSE] L0232 JE L00,#01 [FALSE] L0231 PRINT_RET "Futile." L0231: PRINT_RET "You lack the nerve when it comes to the crucial moment." L0232: JE Ge9,#05 [FALSE] L0234 JE L00,#01 [FALSE] L0233 PRINT_RET "You talk to yourself a while." L0233: PRINT_RET "This provokes no reaction." L0234: JE Ge9,#02,#03 [FALSE] L0235 PRINT_RET "There is no reply." L0235: JE Ge9,#4e [FALSE] L0236 PRINT_RET "Nothing is on sale." L0236: JE Ge9,#4f [FALSE] L0237 PRINT_RET "Your singing is abominable." L0237: JE Ge9,#50 [FALSE] L0238 PRINT_RET "I don't think much is to be achieved by that." L0238: JE Ge9,#58 [FALSE] L0239 PRINT_RET "Time passes." L0239: JE Ge9,#51 [FALSE] L0240 PRINT_RET "You aren't feeling especially drowsy." L0240: JE Ge9,#52 [FALSE] L0241 PRINT "You discover nothing of interest in " CALL_2N R0077 (L01) PRINT_RET "." L0241: RTRUE Routine R0207, 0 locals JE Ge9,#01 [FALSE] L0003 JE G00,#001f [FALSE] L0001 CALL_VS R0377 (Geb,#48) -> -(SP) SUB G06,(SP)+ -> G06 L0001: ADD G06,#05 -> G06 TEST_ATTR G1e,#1c [TRUE] L0002 SET_ATTR G1e,#1c INC G7c ADD G06,#02 -> G06 L0002: PRINT_RET "Taken!" L0003: JE Ge9,#1c [FALSE] L0004 SUB G06,#05 -> G06 JE G00,#001f [FALSE] L0004 CALL_VS R0377 (Geb,#48) -> -(SP) ADD G06,(SP)+ -> G06 PRINT_RET "Safely deposited." L0004: RFALSE Routine R0208, 0 locals JE Ge9,#42 [FALSE] L0001 PRINT_RET "You have taken a drink from the stream. The water tastes strongly of minerals, but is not unpleasant. It is extremely cold." L0001: JE Ge9,#01 [FALSE] L0003 JIN "small bottle",G08 [TRUE] L0002 PRINT_RET "You have nothing in which to carry the water." L0002: CALL_VN R0059 (#43,#0025) RTRUE L0003: JE Ge9,#1b [FALSE] L0005 JE G1f,#0025 [FALSE] L0004 CALL_VN R0059 (#43,#0025) RTRUE L0004: PRINT_RET "You have nothing in which to carry the water." L0005: JE Ge9,#0101 [FALSE] L0009 JE G1e,#00be [FALSE] L0006 REMOVE_OBJ "ming vase" INSERT_OBJ "some worthless shards of pottery",G00 SUB G06,#05 -> G06 PRINT_RET "The sudden change in temperature has delicately shattered the vase." L0006: JE G1e,#0025 [FALSE] L0007 CALL_VN R0059 (#43,#0025) RTRUE L0007: REMOVE_OBJ G1e CALL_VS R0384 (G1e,#15) -> -(SP) JZ (SP)+ [TRUE] L0008 SUB G06,#05 -> G06 L0008: CALL_2N R0078 (G1e) PRINT_RET " washes away with the stream." L0009: RFALSE Routine R0209, 0 locals JE Ge9,#22 [FALSE] L0002 JE G1e,#0020,#0021 [FALSE] L0001 PRINT_RET "The stream flows out through a pair of 1 foot diameter sewer pipes. It would be advisable to use the exit." L0001: RFALSE L0002: JE Ge9,#5e [FALSE] L0003 TEST_ATTR "In Debris Room",#18 [FALSE] RFALSE CALL_2N R0096 (#0035) RTRUE L0003: JE Ge9,#5f [FALSE] L0004 TEST_ATTR "At "Y2"",#18 [FALSE] RFALSE CALL_2N R0096 (#005c) RTRUE L0004: RFALSE Routine R0210, 0 locals JE Ge9,#60 [FALSE] L0001 PRINT_RET "A dozen or so keys." L0001: RFALSE Routine R0211, 0 locals JE Ge9,#32 [FALSE] L0001 PRINT_RET "Delicious!" L0001: RFALSE Routine R0212, 0 locals JIN "fresh batteries",G08 [TRUE] L0001 JIN "fresh batteries",G00 [FALSE] L0002 L0001: REMOVE_OBJ "fresh batteries" SET_ATTR "fresh batteries",#08 INSERT_OBJ "worn-out batteries",G00 CALL_VN R0376 (Geb,#49,#09c4) PRINT_RET "I'm taking the liberty of replacing the batteries." L0002: RFALSE Routine R0213, 1 local TEST_ATTR Geb,#0d [TRUE] L0001 CALL_2N R0066 (Geb) RTRUE L0001: CALL_VS R0380 (Geb,#49) -> L00 JZ L00 [FALSE] L0002 CLEAR_ATTR Geb,#0d CLEAR_ATTR Geb,#09 L0002: JIN Geb,G08 [TRUE] L0003 JIN Geb,G00 [FALSE] L0009 L0003: JZ L00 [FALSE] L0005 PRINT "Your lamp has run out of power." JIN "fresh batteries",G08 [TRUE] L0004 TEST_ATTR G00,#09 [TRUE] L0004 STORE G0c,#03 PRINT_RET " You can't explore the cave without a lamp. So let's just call it a day." L0004: CALL_VN R0378 (Geb,#4a) NEW_LINE RTRUE L0005: JE L00,#1e [FALSE] L0009 PRINT "Your lamp is getting dim." TEST_ATTR "fresh batteries",#08 [FALSE] L0006 PRINT_RET " You're also out of spare batteries. You'd best start wrapping this up." L0006: JIN "fresh batteries","vending machine" [FALSE] L0007 TEST_ATTR "?",#18 [FALSE] L0007 PRINT_RET " You'd best start wrapping this up, unless you can find some fresh batteries. I seem to recall there's a vending machine in the maze. Bring some coins with you." L0007: JIN "fresh batteries","vending machine" [TRUE] L0008 JIN "fresh batteries",G08 [TRUE] L0008 JIN "fresh batteries",G00 [TRUE] L0008 PRINT_RET " You'd best go back for those batteries." L0008: NEW_LINE RTRUE L0009: RFALSE Routine R0214, 0 locals JE Ge9,#21 [FALSE] L0003 PRINT "It is a shiny brass lamp" TEST_ATTR Geb,#0d [TRUE] L0001 PRINT_RET ". It is not currently lit." L0001: CALL_VS R0377 (Geb,#49) -> -(SP) JL (SP)+,#1e [FALSE] L0002 PRINT_RET ", glowing dimly." L0002: PRINT_RET ", glowing brightly." L0003: JE Ge9,#35 [FALSE] L0004 CALL_VN R0059 (#2d,Geb) RTRUE L0004: JE Ge9,#4a [FALSE] L0005 PRINT_RET "Rubbing the electric lamp is not particularly rewarding. Anyway, nothing exciting happens." L0005: JE Ge9,#2d [FALSE] L0007 CALL_VS R0377 (Geb,#49) -> -(SP) JG (SP)+,#00 [TRUE] L0006 PRINT_RET "Unfortunately, the batteries seem to be dead." L0006: RFALSE L0007: JE Ge9,#0101 [FALSE] L0010 JE G1e,#0101 [FALSE] L0008 PRINT_RET "Those batteries are dead; they won't do any good at all." L0008: JE G1e,#0100 [FALSE] L0009 CALL_VN R0378 (Geb,#4a) RTRUE L0009: PRINT_RET "The only thing you might successfully put in the lamp is a fresh pair of batteries." L0010: RFALSE Routine R0215, 0 locals JE Ge9,#2d [FALSE] L0001 SET_ATTR Geb,#09 CALL_2N R0065 (Geb) RFALSE L0001: JE Ge9,#2e [FALSE] L0002 CLEAR_ATTR Geb,#09 L0002: RFALSE Routine R0216, 0 locals JE Ge9,#0100 [FALSE] L0002 JIN G1e,"small bottle" [FALSE] L0001 PRINT_RET "You're holding that already (in the bottle)." L0001: RFALSE L0002: JE Ge9,#0101 [FALSE] L0004 JE G1e,#19,#008c [FALSE] L0003 CALL_VN R0059 (#43,Geb) RTRUE L0003: PRINT_RET "The bottle is only supposed to hold liquids." RFALSE L0004: JE Ge9,#43 [FALSE] L0010 GET_CHILD "small bottle" -> -(SP) [FALSE] L0005 L0005: JZ (SP)+ [TRUE] L0006 PRINT_RET "The bottle is full already." L0006: JIN "stream",G00 [TRUE] L0007 JIN "spring",G00 [FALSE] L0008 L0007: INSERT_OBJ "bottled water","small bottle" PRINT_RET "The bottle is now full of water." L0008: JIN "pool of oil",G00 [FALSE] L0009 INSERT_OBJ "bottled oil","small bottle" PRINT_RET "The bottle is now full of oil." L0009: PRINT_RET "There is nothing here with which to fill the bottle." L0010: JE Ge9,#61 [FALSE] L0014 GET_CHILD "small bottle" -> -(SP) [FALSE] L0011 L0011: JZ (SP)+ [FALSE] L0012 PRINT_RET "The bottle is already empty!" L0012: GET_CHILD "small bottle" -> -(SP) [FALSE] L0013 L0013: REMOVE_OBJ (SP)+ PRINT_RET "Your bottle is now empty and the ground is now wet." L0014: RFALSE Routine R0217, 0 locals JE Ge9,#42 [FALSE] L0001 REMOVE_OBJ "bottled water" CALL_VN R0059 (#42,#19) RTRUE L0001: RFALSE Routine R0218, 0 locals JE Ge9,#42 [FALSE] L0001 CALL_VN R0059 (#42,#008c) RTRUE L0001: RFALSE Routine R0219, 0 locals RANDOM #02 -> -(SP) JE (SP)+,#01 [FALSE] L0001 CALL_VN R0096 (#0029,#01) L0001: RFALSE Routine R0220, 0 locals JE Ge9,#22 [FALSE] L0001 PRINT_RET "You don't fit through a two-inch slit!" L0001: RFALSE Routine R0221, 0 locals TEST_ATTR "steel grate",#0b [TRUE] L0001 TEST_ATTR "steel grate",#0e [TRUE] L0001 PRINT "(first opening the grate) " SET_ATTR "steel grate",#0e L0001: RET #0030 Routine R0222, 0 locals JE G00,#0031 [FALSE] L0001 RET #0f L0001: RET #10 Routine R0223, 0 locals JE G00,#0031 [FALSE] L0001 RET #2e L0001: RET #0031 Routine R0224, 0 locals TEST_ATTR Geb,#0e [FALSE] L0001 PRINT_RET " The grate stands open." L0001: TEST_ATTR Geb,#0b [TRUE] L0002 PRINT_RET " The grate is unlocked but shut." L0002: RTRUE Routine R0225, 0 locals JE Ge9,#2f [FALSE] L0001 JIN "little bird",Geb [FALSE] RFALSE PRINT "(releasing the little bird) " CALL_VN R0059 (#62,#003b) RTRUE L0001: RFALSE Routine R0226, 0 locals JE Ge9,#5e [FALSE] L0001 CALL_2N R0096 (#1f) RTRUE L0001: RFALSE Routine R0227, 0 locals JE Ge9,#54 [FALSE] L0004 JE G00,#0049,#0048 [FALSE] L0003 JZ G7a [TRUE] L0001 PRINT_RET "Peculiar. Nothing happens." L0001: JIN "crystal bridge",#00 [TRUE] L0002 REMOVE_OBJ "crystal bridge" SET_ATTR "crystal bridge",#07 PUT_PROP "West Side of Fissure",#09,#00 PUT_PROP "On East Bank of Fissure",#0a,#00 PRINT_RET "The crystal bridge has vanished!" L0002: INSERT_OBJ "crystal bridge",G00 CLEAR_ATTR "crystal bridge",#07 PUT_PROP "West Side of Fissure",#09,#004b PUT_PROP "On East Bank of Fissure",#0a,#004b PRINT_RET "A crystal bridge now spans the fissure." L0003: PRINT_RET "Nothing happens." L0004: RFALSE Routine R0228, 0 locals JE Ge9,#21 [FALSE] L0002 JIN Geb,"wicker cage" [FALSE] L0001 PRINT_RET "The little bird looks unhappy in the cage." L0001: PRINT_RET "The cheerful little bird is sitting here singing." L0002: JE Ge9,#1b [FALSE] L0004 JE G1f,#34 [FALSE] L0003 CALL_VN R0059 (#63,Geb) RTRUE L0003: PRINT "Don't put the poor bird in " CALL_2N R0077 (G1f) PRINT_RET "!" RFALSE L0004: JE Ge9,#1c,#06 [FALSE] L0006 JIN Geb,"wicker cage" [FALSE] L0005 PRINT "(The bird is released from the cage.) " CALL_VN R0059 (#62,Geb) RTRUE L0005: RFALSE L0006: JE Ge9,#01,#63 [FALSE] L0010 JIN Geb,"wicker cage" [FALSE] L0007 PRINT_RET "You already have the little bird. If you take it out of the cage it will likely fly away from you." L0007: JIN "wicker cage",G08 [TRUE] L0008 PRINT_RET "You can catch the bird, but you cannot carry it." L0008: JIN "black rod with a rusty star on the end",G08 [FALSE] L0009 PRINT_RET "The bird was unafraid when you entered, but as you approach it becomes disturbed and you cannot catch it." L0009: INSERT_OBJ Geb,"wicker cage" CLEAR_ATTR "wicker cage",#0e PRINT_RET "You catch the bird in the wicker cage." L0010: JE Ge9,#62 [FALSE] L0014 JIN Geb,"wicker cage" [TRUE] L0011 PRINT_RET "The bird is not caged now." L0011: SET_ATTR "wicker cage",#0e INSERT_OBJ Geb,G00 JIN "snake",G00 [FALSE] L0012 REMOVE_OBJ "snake" PRINT_RET "The little bird attacks the green snake, and in an astounding flurry drives the snake away." L0012: JIN "dragon",G00 [FALSE] L0013 REMOVE_OBJ Geb PRINT_RET "The little bird attacks the green dragon, and in an astounding flurry gets burnt to a cinder. The ashes blow away." L0013: PRINT_RET "The little bird flies free." L0014: RFALSE Routine R0229, 0 locals JE Ge9,#0a [FALSE] L0001 PRINT_RET "It's not hungry. (It's merely pinin' for the fjords). Besides, I suspect it would prefer bird seed." L0001: JE Ge9,#0103,#03,#02 [FALSE] L0002 PRINT_RET "Cheep! Chirp!" L0002: JE Ge9,#5c [FALSE] L0004 JIN Geb,"wicker cage" [FALSE] L0003 PRINT_RET "Oh, leave the poor unhappy bird alone." L0003: REMOVE_OBJ Geb PRINT_RET "The little bird is now dead. Its body disappears." L0004: RFALSE Routine R0230, 0 locals JIN "large gold nugget",G08 [FALSE] L0001 STORE G0c,#01 PRINT_RET "You are at the bottom of the pit with a broken neck." L0001: RET #0040 Routine R0231, 0 locals JE Ge9,#22 [FALSE] L0001 JE G1e,#003e [FALSE] L0001 PRINT_RET "The crack is far too small for you to follow." L0001: RFALSE Routine R0232, 0 locals TEST_ATTR Geb,#08 [TRUE] RFALSE ADD G06,#19 -> G06 SET_ATTR Geb,#08 RFALSE Routine R0233, 0 locals JIN "large gold nugget",G08 [FALSE] L0001 PRINT_RET "The dome is unclimbable." L0001: RET #3c Routine R0234, 0 locals JE Ge9,#21 [FALSE] L0002 JIN "large gold nugget",G08 [FALSE] L0001 PRINT_RET "I'm not sure you'll be able to get up it with what you're carrying." L0001: PRINT_RET "It looks like you might be able to climb up it." L0002: JE Ge9,#50 [FALSE] L0003 CALL_2N R0097 (#0f) RTRUE L0003: RFALSE Routine R0235, 0 locals JE Ge9,#3f [FALSE] L0002 TEST_ATTR "crystal bridge",#07 [TRUE] L0001 PRINT_RET "I respectfully suggest you go across the bridge instead of jumping." L0001: STORE G0c,#01 PRINT_RET "You didn't make it." L0002: RFALSE Routine R0236, 0 locals JE Ge9,#00 [FALSE] L0001 JE G00,#49 [FALSE] L0001 JE G1e,#07 [FALSE] L0001 PRINT "You have crawled through a very low wide passage parallel to and north of the hall of mists. " L0001: RFALSE Routine R0237, 0 locals JE G00,#49 [FALSE] L0001 RET #09 L0001: RET #0a Routine R0238, 0 locals JE G00,#49 [FALSE] L0001 RET #48 L0001: RET #49 Routine R0239, 0 locals JE Ge9,#00 [FALSE] L0001 JE G1e,#07 [FALSE] L0001 PRINT "You have crawled through a very low wide passage parallel to and north of the hall of mists. " L0001: RFALSE Routine R0240, 0 locals JE Ge9,#00 [FALSE] L0002 JIN "snake",Geb [FALSE] L0002 JE G1e,#07,#08,#0a [TRUE] L0001 JE G1e,#0e [FALSE] L0002 RANDOM #64 -> -(SP) JG (SP)+,#23 [TRUE] L0002 L0001: PRINT_RET "You can't get by the snake." L0002: RFALSE Routine R0241, 0 locals JE Ge9,#0103,#03,#02 [FALSE] L0001 PRINT_RET "Hiss!" L0001: JE Ge9,#5b [FALSE] L0003 JE G1e,#0103 [FALSE] L0002 CALL_VN R0059 (#5c,Geb) RTRUE L0002: CALL_VN R0059 (#0a,G1e,Geb) RTRUE L0003: JE Ge9,#0a [FALSE] L0005 JE G1e,#3b [FALSE] L0004 REMOVE_OBJ "little bird" PRINT_RET "The snake has now devoured your bird." L0004: PRINT_RET "There's nothing here it wants to eat (except perhaps you)." L0005: JE Ge9,#5c [FALSE] L0006 PRINT_RET "Attacking the snake both doesn't work and is very dangerous." L0006: JE Ge9,#01 [FALSE] L0007 STORE G0c,#01 PRINT_RET "It takes you instead. Glrp!" L0007: RFALSE Routine R0242, 0 locals JE Ge9,#07 [FALSE] L0001 RANDOM #64 -> -(SP) JG (SP)+,#19 [TRUE] L0001 PRINT " A hollow voice says, "Plugh." " L0001: RFALSE Routine R0243, 0 locals JE Ge9,#5f [FALSE] L0001 CALL_2N R0096 (#1f) RTRUE L0001: JE Ge9,#64 [FALSE] L0003 TEST_ATTR "Plover Room",#18 [FALSE] RFALSE JIN "emerald the size of a plover's egg",G08 [FALSE] L0002 INSERT_OBJ "emerald the size of a plover's egg","Plover Room" SUB G06,#05 -> G06 L0002: CALL_2N R0096 (#00c3) RTRUE L0003: RFALSE Routine R0244, 0 locals JE Ge9,#4d [FALSE] L0001 PRINT_RET "The shadowy figure waves back at you!" L0001: RFALSE Routine R0245, 0 locals JE Ge9,#50,#22 [FALSE] L0001 CALL_2N R0097 (#10) RTRUE L0001: RFALSE Routine R0246, 0 locals JE Ge9,#50 [FALSE] L0001 CALL_2N R0097 (#10) RTRUE L0001: RFALSE Routine R0247, 0 locals JE Ge9,#50 [FALSE] L0001 CALL_2N R0097 (#10) RTRUE L0001: RFALSE Routine R0248, 1 local JE Ge9,#00 [FALSE] L0007 JE G1e,#08,#10 [FALSE] L0001 RANDOM #64 -> -(SP) JG (SP)+,#50 [TRUE] L0001 STORE L00,#01 L0001: JE G1e,#0f [FALSE] L0002 RANDOM #64 -> -(SP) JG (SP)+,#50 [TRUE] L0002 STORE L00,#01 L0002: JE G1e,#0f [FALSE] L0003 RANDOM #64 -> -(SP) JG (SP)+,#32 [TRUE] L0003 STORE L00,#0092 L0003: JE G1e,#07 [FALSE] L0004 RANDOM #64 -> -(SP) JG (SP)+,#3c [TRUE] L0004 STORE L00,#01 L0004: JE G1e,#07 [FALSE] L0005 RANDOM #64 -> -(SP) JG (SP)+,#4b [TRUE] L0005 STORE L00,#0094 L0005: JE L00,#01 [FALSE] L0006 PRINT_RET "You have crawled around in some little holes and wound up back in the main passage." L0006: JZ L00 [TRUE] RFALSE CALL_2N R0096 (L00) RTRUE L0007: RFALSE Routine R0249, 0 locals JE Ge9,#00 [FALSE] L0003 JE G1e,#08 [FALSE] L0001 RANDOM #64 -> -(SP) JG (SP)+,#50 [FALSE] L0002 L0001: JE G1e,#0d [FALSE] L0003 RANDOM #64 -> -(SP) JG (SP)+,#32 [TRUE] L0003 L0002: PRINT_RET "You have crawled around in some little holes and wound up back in the main passage." L0003: RFALSE Routine R0250, 0 locals JE Ge9,#2a,#56,#55 [TRUE] L0001 JE Ge9,#01 [FALSE] L0002 L0001: PRINT_RET "Surely you're joking." L0002: RFALSE Routine R0251, 0 locals JE Ge9,#22 [FALSE] L0001 JE G1e,#0086 [FALSE] L0001 PRINT_RET "It is too far up for you to reach." L0001: RFALSE Routine R0252, 0 locals CALL_VS R0377 (#0088,#004b) -> -(SP) JE (SP)+,#01 [FALSE] L0001 PRINT_RET "The top of a 12-foot-tall beanstalk is poking out of the west pit." L0001: PRINT_RET "There is a huge beanstalk growing out of the west pit up to the hole." Routine R0253, 0 locals JE Ge9,#21 [FALSE] L0001 CALL_VN R0049 (Geb,#15) RTRUE L0001: JE Ge9,#50 [FALSE] L0002 CALL_VS R0377 (#0088,#004b) -> -(SP) JE (SP)+,#02 [FALSE] L0002 CALL_VN R0059 (#50,#0088) RTRUE L0002: RFALSE Routine R0254, 0 locals JE Ge9,#50 [FALSE] L0001 JE G1e,#0088 [TRUE] RFALSE CALL_VS R0377 (#0088,#004b) -> -(SP) JZ (SP)+ [FALSE] L0001 PRINT_RET "There is nothing here to climb. Use "up" or "out" to leave the pit." L0001: RFALSE Routine R0255, 0 locals CALL_VS R0377 (Geb,#4b) -> -(SP) PULL Gef JE Gef,#00 [FALSE] L0001 PRINT_RET "There is a tiny little plant in the pit, murmuring "Water, water, ..."" L0001: JE Gef,#01 [FALSE] L0002 PRINT_RET "There is a 12-foot-tall beanstalk stretching up out of the pit, bellowing "Water!! Water!!"" L0002: JE Gef,#02 [FALSE] L0003 PRINT_RET "There is a gigantic beanstalk stretching all the way up to the hole." L0003: RFALSE Routine R0256, 0 locals JE Ge9,#50 [FALSE] L0004 CALL_VS R0377 (Geb,#4b) -> -(SP) PULL Gef JE Gef,#00 [FALSE] L0001 PRINT_RET "It's just a little plant!" L0001: JE Gef,#01 [FALSE] L0002 PRINT "You have climbed up the plant and out of the pit. " CALL_2N R0096 (#84) RTRUE L0002: JE Gef,#02 [FALSE] L0003 PRINT "You clamber up the plant and scurry through the hole at the top. " CALL_2N R0096 (#00ab) RTRUE L0003: RFALSE L0004: JE Ge9,#01 [FALSE] L0005 PRINT_RET "The plant has exceptionally deep roots and cannot be pulled free." L0005: JE Ge9,#65 [FALSE] L0013 JIN "small bottle",G08 [TRUE] L0006 PRINT_RET "You have nothing to water the plant with." L0006: GET_CHILD "small bottle" -> -(SP) [FALSE] L0007 L0007: PULL Gef JE Gef,#00 [FALSE] L0008 PRINT_RET "The bottle is empty." L0008: JE Gef,#27 [FALSE] L0009 REMOVE_OBJ "bottled oil" PRINT_RET "The plant indignantly shakes the oil off its leaves and asks, "Water?"" L0009: REMOVE_OBJ "bottled water" CALL_VS R0379 (Geb,#4b) -> -(SP) PULL Gef JE Gef,#00 [FALSE] L0010 PRINT "The plant spurts into furious growth for a few seconds. " CLEAR_ATTR "beanstalk",#07 JUMP L0012 L0010: JE Gef,#01 [FALSE] L0011 PRINT "The plant grows explosively, almost filling the bottom of the pit. " JUMP L0012 L0011: JE Gef,#02 [FALSE] L0012 PRINT "You've over-watered the plant! It's shriveling up! It's, it's... " SET_ATTR "beanstalk",#07 REMOVE_OBJ "beanstalk" CALL_VN R0376 (Geb,#4b,#00) L0012: CALL_VN R0059 (#21,Geb) RTRUE L0013: JE Ge9,#66 [FALSE] L0014 CALL_VN R0059 (#65,Geb) RTRUE L0014: JE Ge9,#21 [FALSE] L0015 CALL_VN R0378 (Geb,#15) RTRUE L0015: RFALSE Routine R0257, 0 locals JE Ge9,#2a,#56,#55 [TRUE] L0001 JE Ge9,#01 [FALSE] L0002 L0001: PRINT_RET "Surely you're joking." L0002: RFALSE Routine R0258, 0 locals JE Ge9,#42 [FALSE] L0001 PRINT_RET "Absolutely not." L0001: JE Ge9,#01 [FALSE] L0003 JIN "small bottle",G08 [TRUE] L0002 PRINT_RET "You have nothing in which to carry the oil." L0002: CALL_VN R0059 (#43,#25) RTRUE L0003: JE Ge9,#1b [FALSE] L0005 JE G1f,#25 [FALSE] L0004 CALL_VN R0059 (#43,#25) RTRUE L0004: PRINT_RET "You have nothing in which to carry the oil." L0005: RFALSE Routine R0259, 0 locals JE Ge9,#2a,#56,#55 [TRUE] L0001 JE Ge9,#01 [FALSE] L0002 L0001: PRINT_RET "Surely you're joking." L0002: RFALSE Routine R0260, 0 locals JE Ge9,#00 [FALSE] L0001 JE G1e,#08 [FALSE] L0001 STORE G7b,Geb L0001: RFALSE Routine R0261, 0 locals JE Ge9,#00 [FALSE] L0001 JE G1e,#0a [FALSE] L0001 STORE G7b,Geb L0001: RFALSE Routine R0262, 0 locals RANDOM #64 -> -(SP) JG (SP)+,#28 [TRUE] L0001 RET #72 L0001: RANDOM #64 -> -(SP) JG (SP)+,#32 [TRUE] L0002 RET #78 L0002: RET #70 Routine R0263, 0 locals JE Ge9,#3f,#50 [FALSE] L0001 CALL_VN R0059 (#00,#10) RTRUE L0001: RFALSE Routine R0264, 0 locals JE Ge9,#2a,#56,#01 [FALSE] L0001 PRINT_RET "Do get a grip on yourself." L0001: RFALSE Routine R0265, 0 locals JE G7b,#96 [FALSE] L0001 RET G7b L0001: JIN "dragon",G00 [FALSE] L0002 PRINT_RET "The dragon looks rather nasty. You'd best not try to get by." L0002: RET #96 Routine R0266, 0 locals JE G7b,#91 [FALSE] L0001 RET G7b L0001: JIN "dragon",G00 [FALSE] L0002 PRINT_RET "The dragon looks rather nasty. You'd best not try to get by." L0002: RET #91 Routine R0267, 0 locals RET G7b Routine R0268, 0 locals JE G19,#33 [FALSE] L0001 TEST_ATTR "dragon",#08 [FALSE] L0001 REMOVE_OBJ "dragon" INSERT_OBJ "dragon's body",G00 CLEAR_ATTR "dragon",#08 PRINT_RET "Congratulations! You have just vanquished a dragon with your bare hands! (Unbelievable, isn't it?)" L0001: JE G19,#34 [FALSE] L0002 TEST_ATTR "dragon",#08 [FALSE] L0002 CLEAR_ATTR "dragon",#08 PRINT_RET "I should think not." L0002: CLEAR_ATTR "dragon",#08 RFALSE Routine R0269, 0 locals JE Ge9,#5c [FALSE] L0001 SET_ATTR "dragon",#08 PRINT_RET "With what? Your bare hands?" L0001: JE Ge9,#0a [FALSE] L0002 PRINT_RET "The dragon is implacable." L0002: JE Ge9,#5b [FALSE] L0004 JE G1e,#0103 [TRUE] L0003 PRINT_RET "You'd probably be better off using your bare hands than that thing!" L0003: INSERT_OBJ "dwarvish axe",G00 PRINT_RET "The axe bounces harmlessly off the dragon's thick scales." L0004: RFALSE Routine R0270, 0 locals JE Ge9,#01 [FALSE] L0001 JIN "dragon",G00 [FALSE] L0001 PRINT_RET "You'll need to get the dragon to move first!" L0001: RFALSE Routine R0271, 0 locals JIN "dragon",G00 [FALSE] L0001 PRINT_RET "The dragon is sprawled out on the Persian rug!" L0001: PRINT_RET "The Persian rug is spread out on the floor here." Routine R0272, 0 locals JE Ge9,#5c [FALSE] L0001 PRINT_RET "You've already done enough damage!" L0001: RFALSE Routine R0273, 0 locals CALL_2N R0066 (#0104) JIN "treasure chest",Geb [FALSE] L0001 TEST_ATTR "treasure chest",#0c [TRUE] L0001 PRINT_RET "You've found the pirate's treasure chest!" L0001: RFALSE Routine R0274, 0 locals JE Ge9,#3f [FALSE] L0001 STORE G0c,#01 PRINT_RET "You fall and break your neck!" L0001: RFALSE Routine R0275, 0 locals JE Ge9,#60 [FALSE] L0001 PRINT_RET "69,105." L0001: RFALSE Routine R0276, 0 locals TEST_ATTR "rusty door",#0b [FALSE] L0001 CALL_VN R0059 (#2f,#00b3) RTRUE L0001: TEST_ATTR "rusty door",#0e [TRUE] L0002 SET_ATTR "rusty door",#0e PRINT "(first wrenching the door open) " L0002: RET #00b3 Routine R0277, 0 locals JE Ge9,#2f [FALSE] L0002 TEST_ATTR "rusty door",#0b [FALSE] L0001 PRINT_RET "The hinges are quite thoroughly rusted now and won't budge." L0001: RFALSE L0002: JE Ge9,#30 [FALSE] L0004 TEST_ATTR "rusty door",#0e [FALSE] L0003 PRINT_RET "With all the effort it took to get the door open, I wouldn't suggest closing it again." L0003: PRINT_RET "No problem there -- it already is." L0004: JE Ge9,#66 [FALSE] L0006 JIN "small bottle",G08 [FALSE] L0005 JIN "bottled oil","small bottle" [FALSE] L0005 REMOVE_OBJ "bottled oil" CLEAR_ATTR "rusty door",#0b SET_ATTR "rusty door",#0f PRINT_RET "The oil has freed up the hinges so that the door will now move, although it requires some effort." L0005: PRINT_RET "You have nothing to oil it with." RFALSE L0006: JE Ge9,#65 [FALSE] L0008 JIN "small bottle",G08 [FALSE] L0007 JIN "bottled water","small bottle" [FALSE] L0007 REMOVE_OBJ "bottled water" SET_ATTR "rusty door",#0b CLEAR_ATTR "rusty door",#0e PRINT_RET "The hinges are quite thoroughly rusted now and won't budge." L0007: PRINT_RET "You have nothing to water it with." L0008: RFALSE Routine R0278, 0 locals JE Ge9,#2f [FALSE] L0001 PRINT_RET "The door heaves open with a shower of rust." L0001: RFALSE Routine R0279, 0 locals JE Ge9,#01 [FALSE] L0001 PRINT_RET "Now don't go ripping up the place!" L0001: JE Ge9,#2a,#29 [FALSE] L0002 PRINT_RET "You don't find anything exciting behind the curtains." L0002: RFALSE Routine R0280, 0 locals JE Ge9,#01 [FALSE] L0001 PRINT_RET "It crumbles to nothing in your hands." L0001: RFALSE Routine R0281, 0 locals JE Ge9,#1c [FALSE] L0002 JIN "velvet pillow",G00 [FALSE] L0001 PRINT "(coming to rest, delicately, on the velvet pillow) " RFALSE L0001: REMOVE_OBJ "ming vase" INSERT_OBJ "some worthless shards of pottery",G00 PRINT_RET "The ming vase drops with a delicate crash." L0002: RFALSE Routine R0282, 0 locals JE Ge9,#5c [FALSE] L0001 REMOVE_OBJ "ming vase" INSERT_OBJ "some worthless shards of pottery",G00 PRINT_RET "You have taken the vase and hurled it delicately to the ground." L0001: JE Ge9,#0101 [FALSE] L0002 PRINT_RET "The vase is too fragile to use as a container." L0002: RFALSE Routine R0283, 1 local STORE Gef,#00 GET_CHILD G08 -> -(SP) [FALSE] L0002 L0001: INC Gef GET_SIBLING (SP)+ -> -(SP) [TRUE] L0001 L0002: PULL Gee STORE L00,Gef JZ L00 [TRUE] L0003 JE L00,#01 [FALSE] L0004 JIN "emerald the size of a plover's egg",G08 [FALSE] L0004 L0003: RET #00c3 L0004: PRINT_RET "Something you're carrying won't fit through the tunnel with you. You'd best take inventory and drop something." Routine R0284, 1 local STORE Gef,#00 GET_CHILD G08 -> -(SP) [FALSE] L0002 L0001: INC Gef GET_SIBLING (SP)+ -> -(SP) [TRUE] L0001 L0002: PULL Gee STORE L00,Gef JZ L00 [TRUE] L0003 JE L00,#01 [FALSE] L0004 JIN "emerald the size of a plover's egg",G08 [FALSE] L0004 L0003: RET #c2 L0004: PRINT_RET "Something you're carrying won't fit through the tunnel with you. You'd best take inventory and drop something." Routine R0285, 0 locals JE Ge9,#64 [FALSE] L0002 JIN "emerald the size of a plover's egg",G08 [FALSE] L0001 INSERT_OBJ "emerald the size of a plover's egg","Plover Room" L0001: CALL_2N R0096 (#5c) RTRUE L0002: JE Ge9,#00 [FALSE] L0003 JE G1e,#11 [FALSE] L0003 CALL_VN R0059 (#00,#0a) RTRUE L0003: RFALSE Routine R0286, 0 locals JIN "giant clam",G08 [FALSE] L0002 TEST_ATTR "giant clam",#0e [FALSE] L0001 PRINT_RET "You can't fit this five-foot oyster through that little passage!" L0001: PRINT_RET "You can't fit this five-foot clam through that little passage!" L0002: RET #80 Routine R0287, 0 locals TEST_ATTR Geb,#08 [FALSE] L0001 PRINT_RET "There is an enormous oyster here with its shell tightly closed." L0001: PRINT_RET "There is an enormous clam here with its shell tightly closed." Routine R0288, 0 locals JE Ge9,#21 [FALSE] L0002 JE G00,#0107,#010b [FALSE] L0001 PRINT_RET "Interesting. There seems to be something written on the underside of the oyster: "There is something strange about this place, such that one of the words I've always known now has a new effect."" L0001: PRINT_RET "A giant bivalve of some kind." L0002: JE Ge9,#2f [FALSE] L0003 PRINT_RET "You aren't strong enough to open the clam with your bare hands." L0003: JE Ge9,#2b [FALSE] L0006 JE G1f,#b6 [TRUE] L0004 CALL_2N R0078 (#b6) PRINT " isn't strong enough to open the clam." L0004: TEST_ATTR Geb,#08 [FALSE] L0005 PRINT_RET "The oyster creaks open, revealing nothing but oyster inside. It promptly snaps shut again." L0005: SET_ATTR Geb,#08 INSERT_OBJ "glistening pearl","Cul-de-Sac" PRINT_RET "A glistening pearl falls out of the clam and rolls away. Goodness, this must really be an oyster. (I never was very good at identifying bivalves.) Whatever it is, it has now snapped shut again." L0006: JE Ge9,#5c [FALSE] L0007 PRINT_RET "The shell is very strong and is impervious to attack." L0007: RFALSE Routine R0289, 0 locals JE Ge9,#01 [FALSE] L0001 PRINT_RET "It's hanging way above your head." L0001: RFALSE Routine R0290, 0 locals JE Ge9,#01 [FALSE] L0002 JE G00,#00d1 [FALSE] L0001 DEC G06 L0001: RFALSE L0002: JE Ge9,#1c [FALSE] L0003 JE G00,#00d1 [FALSE] L0003 INC G06 PRINT_RET "You really are at wit's end." L0003: RFALSE Routine R0291, 0 locals JE Ge9,#00 [FALSE] L0002 JE G1e,#0a [TRUE] L0001 RANDOM #64 -> -(SP) JG (SP)+,#5f [TRUE] L0001 PRINT_RET "You have crawled around in some little holes and wound up back in the main passage." L0001: CALL_2N R0096 (#ce) RTRUE L0002: RFALSE Routine R0292, 0 locals JE Ge9,#5c,#06 [FALSE] L0001 PRINT_RET "You can't reach it from here." L0001: RFALSE Routine R0293, 0 locals JE Ge9,#3f [FALSE] L0001 STORE G0c,#01 PRINT_RET "You jump and break your neck!" L0001: JE Ge9,#4d [FALSE] L0002 PRINT_RET "The shadowy figure waves back at you!" L0002: RFALSE Routine R0294, 0 locals JE Ge9,#47 [FALSE] L0001 PRINT_RET "The water is icy cold, and you would soon freeze to death." L0001: RFALSE Routine R0295, 0 locals JE Ge9,#3f [FALSE] L0002 JIN "rickety bridge",Geb [FALSE] L0001 PRINT_RET "I respectfully suggest you go across the bridge instead of jumping." L0001: STORE G0c,#01 PRINT_RET "You didn't make it." L0002: RFALSE Routine R0296, 0 locals TEST_ATTR "burly troll",#08 [TRUE] L0001 JIN "burly troll",#00 [FALSE] L0003 L0001: CLEAR_ATTR "burly troll",#08 TEST_ATTR "large cave bear",#08 [FALSE] L0002 REMOVE_OBJ "large cave bear" REMOVE_OBJ Geb CLEAR_ATTR "wreckage of bridge",#07 REMOVE_OBJ "rickety bridge" SET_ATTR "rickety bridge",#07 CALL_2N R0066 (#00ef) STORE G0c,#01 PRINT_RET "Just as you reach the other side, the bridge buckles beneath the weight of the bear, which was still following you around. You scrabble desperately for support, but as the bridge collapses you stumble back and fall into the chasm." L0002: RET #00d8 L0003: JIN "burly troll",G00 [FALSE] L0004 PRINT_RET "The troll refuses to let you cross." L0004: INSERT_OBJ "burly troll",G00 PRINT_RET "The troll steps out from beneath the bridge and blocks your way." Routine R0297, 0 locals PRINT "A rickety wooden bridge extends across the chasm, vanishing into the mist. A sign posted on the bridge reads, "Stop! Pay troll!" " JIN "burly troll",G00 [TRUE] L0001 PRINT_RET "The troll is nowhere to be seen." L0001: RTRUE Routine R0298, 0 locals JE G00,#d7 [FALSE] L0001 RET #0b L0001: RET #0e Routine R0299, 0 locals JE G00,#d7 [FALSE] L0001 RET #00db L0001: RET #d7 Routine R0300, 0 locals JE Ge9,#5c [FALSE] L0001 PRINT_RET "The troll laughs aloud at your pitiful attempt to injure him." L0001: JE Ge9,#5b,#0a [FALSE] L0004 CALL_VS R0384 (G1e,#15) -> -(SP) JZ (SP)+ [TRUE] L0002 REMOVE_OBJ G1e INSERT_OBJ "burly troll","rickety bridge" SET_ATTR "burly troll",#08 SUB G06,#05 -> G06 PRINT_RET "The troll catches your treasure and scurries away out of sight." L0002: JE G1e,#23 [FALSE] L0003 PRINT_RET "Gluttony is not one of the troll's vices. Avarice, however, is." L0003: PRINT "The troll deftly catches " CALL_2N R0077 (G1e) PRINT_RET ", examines it carefully, and tosses it back, declaring, "Good workmanship, but it's not valuable enough."" L0004: JE Ge9,#0103 [FALSE] L0005 PRINT_RET "You'll be lucky." L0005: JE Ge9,#02,#03 [FALSE] L0006 PRINT_RET "Trolls make poor conversation." L0006: RFALSE Routine R0301, 0 locals PRINT_RET "The wreckage is too far below." Routine R0302, 0 locals JE Ge9,#3f [FALSE] L0002 JIN "rickety bridge",Geb [FALSE] L0001 PRINT_RET "I respectfully suggest you go across the bridge instead of jumping." L0001: STORE G0c,#01 PRINT_RET "You didn't make it." L0002: RFALSE Routine R0303, 0 locals JE Ge9,#3f [FALSE] L0001 CALL_VN R0059 (#00,#10) RTRUE L0001: RFALSE Routine R0304, 0 locals JE Ge9,#3a,#21 [FALSE] L0001 PRINT_RET "They smell wonderfully exotic!" L0001: RFALSE Routine R0305, 0 locals CALL_VS R0377 (Geb,#4c) -> -(SP) JZ (SP)+ [TRUE] L0001 PRINT_RET "You are being followed by a very large, tame bear." L0001: CALL_VS R0377 (Geb,#4d) -> -(SP) JZ (SP)+ [TRUE] L0002 PRINT_RET "There is a ferocious cave bear eyeing you from the far end of the room!" L0002: JE G00,#ed [FALSE] L0003 PRINT_RET "There is a gentle cave bear sitting placidly in one corner." L0003: PRINT_RET "There is a contented-looking bear wandering about nearby." Routine R0306, 0 locals JE Ge9,#5c [FALSE] L0003 JIN "dwarvish axe",G08 [FALSE] L0001 CALL_VN R0059 (#5b,#0103,#ef) RTRUE L0001: CALL_VS R0377 (Geb,#4d) -> -(SP) JZ (SP)+ [FALSE] L0002 PRINT_RET "The bear is confused; he only wants to be your friend." L0002: PRINT_RET "With what? Your bare hands? Against *his* bear hands??" L0003: JE Ge9,#5b [FALSE] L0006 JE G1e,#0103 [TRUE] L0004 CALL_VN R0059 (#0a,G1e,#ef) RTRUE L0004: CALL_VS R0377 (Geb,#4d) -> -(SP) JZ (SP)+ [FALSE] L0005 PRINT_RET "The bear is confused; he only wants to be your friend." L0005: INSERT_OBJ "dwarvish axe",G00 SET_ATTR "dwarvish axe",#08 PRINT_RET "The axe misses and lands near the bear where you can't get at it." L0006: JE Ge9,#0a [FALSE] L0009 JE G1e,#23 [FALSE] L0007 CLEAR_ATTR "dwarvish axe",#08 REMOVE_OBJ "tasty food" CALL_VN R0376 (Geb,#4d,#00) PRINT_RET "The bear eagerly wolfs down your food, after which he seems to calm down considerably and even becomes rather friendly." L0007: CALL_VS R0377 (Geb,#4d) -> -(SP) JZ (SP)+ [FALSE] L0008 PRINT_RET "The bear doesn't seem very interested in your offer." L0008: PRINT_RET "Uh-oh -- your offer only makes the bear angrier!" L0009: JE Ge9,#0103,#03,#02 [FALSE] L0010 PRINT_RET "This is a Bear of very little brain." L0010: RFALSE Routine R0307, 0 locals JE Ge9,#21 [FALSE] L0002 PRINT "The bear is extremely large, " CALL_VS R0377 (Geb,#4d) -> -(SP) JZ (SP)+ [FALSE] L0001 PRINT_RET "but appears to be friendly." L0001: PRINT_RET "and seems quite ferocious!" L0002: JE Ge9,#01,#63 [FALSE] L0005 CALL_VS R0377 (Geb,#4d) -> -(SP) JZ (SP)+ [TRUE] L0003 PRINT_RET "Surely you're joking!" L0003: TEST_ATTR "golden chain",#0b [FALSE] L0004 PRINT_RET "The bear is still chained to the wall." L0004: CALL_VN R0376 (Geb,#4c,#01) CALL_2N R0065 (#ef) PRINT_RET "Ok, the bear's now following you around." L0005: JE Ge9,#1c,#62 [FALSE] L0008 CALL_VS R0377 (Geb,#4c) -> -(SP) JZ (SP)+ [FALSE] L0006 PRINT_RET "What?" L0006: CALL_VN R0376 (Geb,#4c,#00) CALL_2N R0066 (#ef) JIN "burly troll",G00 [FALSE] L0007 REMOVE_OBJ "burly troll" PRINT_RET "The bear lumbers toward the troll, who lets out a startled shriek and scurries away. The bear soon gives up the pursuit and wanders back." L0007: PRINT_RET "The bear wanders away from you." L0008: RFALSE Routine R0308, 0 locals JE G00,#13 [TRUE] RFALSE JIN Geb,G00 [FALSE] L0002 JE G00,#df [FALSE] L0001 PRINT_RET " The bear roars with delight." L0001: RFALSE L0002: INSERT_OBJ Geb,G00 PRINT_RET " The bear lumbers along behind you." Routine R0309, 0 locals TEST_ATTR Geb,#0b [FALSE] L0001 PRINT_RET "The bear is held back by a solid gold chain." L0001: PRINT_RET "A solid golden chain lies in coils on the ground!" Routine R0310, 0 locals JE Ge9,#01 [FALSE] L0003 TEST_ATTR Geb,#0b [FALSE] L0002 CALL_VS R0377 (#ef,#4d) -> -(SP) JZ (SP)+ [TRUE] L0001 PRINT_RET "It's locked to the ferocious bear!" L0001: PRINT_RET "It's locked to the friendly bear." L0002: RFALSE L0003: JE Ge9,#2b [FALSE] L0005 CALL_VS R0377 (#ef,#4d) -> -(SP) JZ (SP)+ [TRUE] L0004 PRINT_RET "There is no way to get past the bear to unlock the chain, which is probably just as well." L0004: RFALSE L0005: JE Ge9,#2c [FALSE] L0006 TEST_ATTR Geb,#0b [TRUE] L0006 PRINT_RET "The mechanism won't lock again." L0006: RFALSE Routine R0311, 0 locals JE Ge9,#2b [FALSE] L0001 PRINT_RET "You unlock the chain, and set the tame bear free." L0001: RFALSE Routine R0312, 0 locals JE Ge9,#0101 [FALSE] L0002 JE G1e,#5b [FALSE] L0001 INSERT_OBJ "fresh batteries",G00 REMOVE_OBJ "rare coins" PRINT_RET "Soon after you insert the coins in the coin slot, the vending machines makes a grinding sound, and a set of fresh batteries falls at your feet." L0001: PRINT_RET "The machine seems to be designed to take coins." L0002: JE Ge9,#5c [FALSE] L0003 PRINT_RET "The machine is quite sturdy and survives your attack without getting so much as a scratch." L0003: JE Ge9,#2a [FALSE] L0004 PRINT_RET "You don't find anything under the machine." L0004: JE Ge9,#29 [FALSE] L0005 PRINT_RET "You can't get inside the machine." L0005: JE Ge9,#01 [FALSE] L0006 PRINT_RET "The vending machine is far too heavy to move." L0006: RFALSE Routine R0313, 0 locals JE Ge9,#60 [FALSE] L0001 PRINT_RET "A pair." L0001: RFALSE Routine R0314, 0 locals JE Ge9,#60 [FALSE] L0001 PRINT_RET "A pair." L0001: RFALSE Routine R0315, 0 locals JE G00,#13 [FALSE] L0001 RTRUE L0001: GET_PROP Geb,#1a -> -(SP) JZ (SP)+ [FALSE] L0002 CALL_2N R0066 (Geb) RTRUE L0002: GET_PARENT "threatening little dwarf" -> -(SP) JZ (SP)+ [FALSE] L0009 TEST_ATTR G00,#1b [TRUE] L0003 TEST_ATTR G00,#09 [FALSE] L0004 L0003: RTRUE L0004: GET_PROP Geb,#1a -> -(SP) RANDOM #64 -> -(SP) JG (SP)+,(SP)+ [TRUE] L0008 JIN "large cave bear",G00 [TRUE] L0005 JIN "burly troll",G00 [FALSE] L0006 L0005: RTRUE L0006: NEW_LINE JIN "dragon",G00 [FALSE] L0007 STORE Gef,Geb STORE Gee,#1a GET_PROP Gef,Gee -> Ged DEC Ged PUT_PROP Gef,Gee,Ged PRINT_RET "A dwarf appears, but with one casual blast the dragon vapourises him!" L0007: INSERT_OBJ "threatening little dwarf",G00 PRINT_RET "A threatening little dwarf comes out of the shadows!" L0008: RTRUE L0009: GET_PARENT "threatening little dwarf" -> -(SP) JE (SP)+,G00 [TRUE] L0014 JE G00,#13 [FALSE] L0010 RTRUE L0010: TEST_ATTR G00,#1b [TRUE] L0011 TEST_ATTR G00,#09 [FALSE] L0012 L0011: RTRUE L0012: RANDOM #64 -> -(SP) JG (SP)+,#60 [TRUE] L0013 GET_PARENT "threatening little dwarf" -> -(SP) JE (SP)+,#d2 [TRUE] L0013 INSERT_OBJ "threatening little dwarf",G00 PRINT " The dwarf stalks after you... " JUMP L0014 L0013: REMOVE_OBJ "threatening little dwarf" RTRUE L0014: RANDOM #64 -> -(SP) JG (SP)+,#4b [TRUE] L0018 NEW_LINE TEST_ATTR Geb,#08 [TRUE] L0015 INSERT_OBJ "dwarvish axe",G00 SET_ATTR Geb,#08 REMOVE_OBJ Geb PRINT_RET "The dwarf throws a nasty little axe at you, misses, curses, and runs away." L0015: JE G00,#d2 [FALSE] L0016 PRINT_RET "The dwarf admires himself in the mirror." L0016: PRINT "The dwarf throws a nasty little knife at you, " RANDOM #03e8 -> -(SP) JG (SP)+,#5f [TRUE] L0017 STORE G0c,#01 PRINT_RET "and hits!" L0017: PRINT_RET "but misses!" L0018: RANDOM #03 -> -(SP) JE (SP)+,#01 [FALSE] L0019 REMOVE_OBJ "threatening little dwarf" PRINT_RET " Tiring of this, the dwarf slips away." L0019: RFALSE Routine R0316, 0 locals JE Ge9,#67 [FALSE] L0001 PRINT_RET "You boot the dwarf across the room. He curses, then gets up and brushes himself off. Now he's madder than ever!" L0001: RFALSE Routine R0317, 0 locals JE Ge9,#5b [FALSE] L0003 JE G1e,#0103 [FALSE] L0002 RANDOM #03 -> -(SP) JE (SP)+,#01 [TRUE] L0001 REMOVE_OBJ Geb INSERT_OBJ "dwarvish axe",G00 STORE Gef,Geb STORE Gee,#1a GET_PROP Gef,Gee -> Ged DEC Ged PUT_PROP Gef,Gee,Ged PRINT_RET "You killed a little dwarf! The body vanishes in a cloud of greasy black smoke." L0001: INSERT_OBJ "dwarvish axe",G00 PRINT_RET "Missed! The little dwarf dodges out of the way of the axe." L0002: CALL_VN R0059 (#0a,G1e,G1f) RTRUE L0003: JE Ge9,#0a [FALSE] L0005 JE G1e,#23 [FALSE] L0004 PRINT_RET "You fool, dwarves eat only coal! Now you've made him *really* mad!" L0004: PRINT_RET "The dwarf is not at all interested in your offer. (The reason being, perhaps, that if he kills you he gets everything you have anyway.)" L0005: JE Ge9,#5c [FALSE] L0006 PRINT_RET "Not with your bare hands. No way." L0006: RFALSE Routine R0318, 0 locals TEST_ATTR "dwarvish axe",#08 [FALSE] RFALSE JE Ge9,#21 [FALSE] L0001 PRINT_RET "It's lying beside the bear." L0001: JE Ge9,#01 [FALSE] L0002 PRINT_RET "No chance. It's lying beside the ferocious bear, quite within harm's way." L0002: RFALSE Routine R0319, 2 locals RANDOM #64 -> -(SP) JG (SP)+,#02 [TRUE] L0001 JE G00,#13,#9c [TRUE] L0001 TEST_ATTR G00,#09 [TRUE] L0001 TEST_ATTR G00,#1b [FALSE] L0002 L0001: RTRUE L0002: JIN "threatening little dwarf",G00 [FALSE] L0003 PRINT_RET " A bearded pirate appears, catches sight of the dwarf and runs away." L0003: STORE L00,#01 L0004: CALL_VS R0384 (L00,#15) -> -(SP) JZ (SP)+ [TRUE] L0006 JIN L00,G08 [TRUE] L0005 JIN L00,G00 [FALSE] L0006 L0005: STORE L01,#01 L0006: INC L00 JG L00,#010e [TRUE] L0007 JUMP L0004 L0007: JZ L01 [FALSE] L0010 CALL_VS R0377 (Geb,#4f) -> -(SP) JZ (SP)+ [TRUE] L0008 RTRUE L0008: CALL_VN R0376 (Geb,#4f,#01) CALL_VS R0377 (Geb,#4e) -> -(SP) JZ (SP)+ [TRUE] L0009 CALL_2N R0066 (Geb) L0009: PRINT_RET " There are faint rustling noises from the darkness behind you. As you turn toward them, you spot a bearded pirate. He is carrying a large chest. "Shiver me timbers!" he cries, "I've been spotted! I'd best hie meself off to the maze to hide me chest!" With that, he vanishes into the gloom." L0010: CALL_VS R0377 (Geb,#4e) -> -(SP) JZ (SP)+ [TRUE] L0011 RTRUE L0011: CALL_VN R0376 (Geb,#4e,#01) CALL_VS R0377 (Geb,#4f) -> -(SP) JZ (SP)+ [TRUE] L0012 CALL_2N R0066 (Geb) L0012: STORE L00,#01 L0013: CALL_VS R0384 (L00,#15) -> -(SP) JZ (SP)+ [TRUE] L0016 JIN L00,G08 [TRUE] L0014 JIN L00,G00 [FALSE] L0016 L0014: JIN L00,G08 [FALSE] L0015 SUB G06,#05 -> G06 L0015: INSERT_OBJ L00,"?" L0016: INC L00 JG L00,#010e [TRUE] L0017 JUMP L0013 L0017: PRINT_RET " Out from the shadows behind you pounces a bearded pirate! "Har, har," he chortles. "I'll just take all this booty and hide it away with me chest deep in the maze!" He snatches your treasure and vanishes into the gloom." Routine R0320, 0 locals JL G7c,#0f [FALSE] L0001 RTRUE L0001: CALL_2N R0066 (Geb) STORE G7a,#01 ADD G06,#19 -> G06 REMOVE_OBJ "crystal bridge" SET_ATTR "steel grate",#0b CLEAR_ATTR "steel grate",#0e REMOVE_OBJ "set of keys" CALL_2N R0066 (#0102) CALL_2N R0066 (#0104) REMOVE_OBJ "burly troll" REMOVE_OBJ "large cave bear" REMOVE_OBJ "dragon" CALL_VN R0063 (#0106,#19) PRINT_RET " A sepulchral voice reverberating through the cave says, "Cave closing soon. All adventurers exit immediately through main office."" Routine R0321, 0 locals ADD G06,#0a -> G06 L0001: GET_CHILD G08 -> -(SP) [FALSE] L0002 L0002: JZ (SP)+ [TRUE] L0004 GET_CHILD G08 -> -(SP) [FALSE] L0003 L0003: REMOVE_OBJ (SP)+ JUMP L0001 L0004: INSERT_OBJ "small bottle","NE End of Repository" GET_CHILD "small bottle" -> -(SP) [FALSE] L0005 L0005: JZ (SP)+ [TRUE] L0007 GET_CHILD "small bottle" -> -(SP) [FALSE] L0006 L0006: REMOVE_OBJ (SP)+ L0007: INSERT_OBJ "giant clam","NE End of Repository" INSERT_OBJ "brass lantern","NE End of Repository" INSERT_OBJ "black rod with a rusty star on the end","NE End of Repository" INSERT_OBJ "little bird","SW End of Repository" INSERT_OBJ "velvet pillow","SW End of Repository" PRINT " The sepulchral voice intones, "The cave is now closed." As the echoes fade, there is a blinding flash of light (and a small puff of orange smoke). . . As your eyes refocus, you look around... " CALL_2N R0096 (#0107) RFALSE Routine R0322, 0 locals JE Ge9,#5c [FALSE] L0001 PRINT "You strike the mirror a resounding blow, whereupon it shatters into a myriad tiny fragments. " CALL_VN R0378 (#010a,#0050) RTRUE L0001: RFALSE Routine R0323, 0 locals JE Ge9,#01 [FALSE] L0001 PRINT_RET "Realizing that by removing the loot here you'd be ruining the game for future players, you leave the "Adventure" materials where they are." L0001: RFALSE Routine R0324, 0 locals JE Ge9,#01 [FALSE] L0001 PRINT_RET "What, all of them?" L0001: RFALSE Routine R0325, 0 locals JE Ge9,#38 [FALSE] L0001 PRINT "You prod the nearest dwarf, who wakes up grumpily, takes one look at you, curses, and grabs for his axe. " CALL_VN R0378 (Geb,#0050) RTRUE L0001: JE Ge9,#5c [FALSE] L0002 CALL_VN R0378 (Geb,#0050) RTRUE L0002: RFALSE Routine R0326, 0 locals STORE G0c,#01 PRINT_RET "The resulting ruckus has awakened the dwarves. There are now dozens of threatening little dwarves in the room with you! Most of them throw knives at you! All of them get you!" Routine R0327, 0 locals JE Ge9,#01 [FALSE] L0001 PRINT_RET "Realizing that by removing the loot here you'd be ruining the game for future players, you leave the "Adventure" materials where they are." L0001: RFALSE Routine R0328, 0 locals JE Ge9,#54 [FALSE] L0001 PRINT_RET "Nothing happens." L0001: RFALSE Routine R0329, 0 locals STORE G00,#17 STORE G06,#24 CALL_2N R0065 (#0102) CALL_2N R0065 (#0104) CALL_2N R0065 (#0105) PRINT " Welcome to Adventure! " RTRUE Routine R0330, 0 locals PRINT ", earning you the rank of " JL G06,#015c [TRUE] L0001 PRINT_RET "Grandmaster Adventurer!" L0001: JL G06,#014a [TRUE] L0002 PRINT_RET "Master, first class." L0002: JL G06,#012c [TRUE] L0003 PRINT_RET "Master, second class." L0003: JL G06,#c8 [TRUE] L0004 PRINT_RET "Junior Master." L0004: JL G06,#82 [TRUE] L0005 PRINT_RET "Seasoned Adventurer." L0005: JL G06,#64 [TRUE] L0006 PRINT_RET "Experienced Adventurer." L0006: JL G06,#23 [TRUE] L0007 PRINT_RET "Adventurer." L0007: JL G06,#0a [TRUE] L0008 PRINT_RET "Novice." L0008: PRINT_RET "Amateur." Routine R0331, 0 locals JZ G7e [FALSE] L0001 STORE G7e,#01 PRINT_RET "It is now pitch dark. If you proceed you will likely fall into a pit." L0001: RANDOM #04 -> -(SP) JE (SP)+,#01 [FALSE] L0002 STORE G0c,#01 PRINT_RET "You fell into a pit and broke every bone in your body!" L0002: RFALSE Routine R0332, 0 locals JZ G6f [FALSE] L0002 STORE G6d,#08 STORE G6e,S303 JE G0c,#02 [FALSE] L0001 RET #04 L0001: RET #03 L0002: JE G6f,#01 [FALSE] L0003 STORE G6d,#06 STORE G6e,S304 L0003: JE G6f,#02 [FALSE] L0004 STORE G6d,#04 STORE G6e,S305 L0004: JE G6f,#03 [FALSE] L0005 STORE G6d,#06 STORE G6e,S306 L0005: JE G6f,#04 [FALSE] L0006 STORE G6d,#07 STORE G6e,S307 L0006: RTRUE Routine R0333, 0 locals JE G6f,#01 [FALSE] L0001 PRINT "I know of places, actions, and things. You can guide me using commands that are complete sentences. To move, try commands like "enter," "east," "west," "north," "south," "up," "down," "enter building," "climb pole," etc. " PRINT "I know about a few special objects, like a black rod hidden in the cave. These objects can be manipulated using some of the action words that I know. Usually you will need to give a verb followed by an object (along with descriptive adjectives when desired), but sometimes I can infer the object from the verb alone. Some objects also imply verbs; in particular, "inventory" implies "take inventory", which causes me to give you a list of what you're carrying. The objects have side effects; for instance, the rod scares the bird. " PRINT "Many commands have abbreviations. For example, you can type "i" in place of "inventory," "x object" instead of "examine object," etc. " PRINT "Usually people having trouble moving just need to try a few more words. Usually people trying unsuccessfully to manipulate an object are attempting something beyond their (or my!) capabilities and should try a completely different tack. " PRINT "Note that cave passages turn a lot, and that leaving a room to the north does not guarantee entering the next from the south. " PRINT "If you want to end your adventure early, type "quit". To suspend your adventure such that you can continue later, type "save," and to resume a saved game, type "restore." To see how well you're doing, type "score". To get full credit for a treasure, you must have left it safely in the building, though you get partial credit just for locating it. You lose points for getting killed, or for quitting, though the former costs you more. There are also points based on how much (if any) of the cave you've managed to explore; in particular, there is a large bonus just for getting in (to distinguish the beginners from the rest of the pack), and there are other ways to determine whether you've been through some of the more harrowing sections. " PRINT "If you think you've found all the treasures, just keep exploring for a while. If nothing interesting happens, you haven't found them all yet. If something interesting *does* happen, it means you're getting a bonus and have an opportunity to garner many more points in the master's section. " PRINT_RET "Good luck!" L0001: JE G6f,#02 [FALSE] L0002 PRINT "Perhaps the first adventurer was a mulatto slave named Stephen Bishop, born about 1820: `slight, graceful, and very handsome'; a `quick, daring, enthusiastic' guide to the Mammoth Cave in the Kentucky karst. The story of the Cave is a curious microcosm of American history. Its discovery is a matter of legend dating back to the 1790s; it is said that a hunter, John Houchin, pursued a wounded bear to a large pit near the Green River and " PRINT "stumbled upon the entrance. The entrance was thick with bats and by the War of 1812 was intensively mined for guano, dissolved into nitrate vats to make saltpetre for gunpowder. After the war prices fell; but the Cave became a minor side-show when a dessicated Indian mummy was found nearby, sitting upright in a stone coffin, surrounded by talismans. In 1815, Fawn Hoof, as she was nicknamed after one of the charms, was taken away by a circus, drawing crowds across America (a tour rather reminiscent of Don McLean's song `The Legend of Andrew McCrew'). She ended up in the Smithsonian but by the 1820s the Cave was being called one of the wonders of the world, largely due to her posthumous efforts. " PRINT "By the early nineteenth century European caves were big tourist attractions, but hardly anyone visited the Mammoth, `wonder of the world' or not. Nor was it then especially large (the name was a leftover from the miners, who boasted of their mammoth yields of guano). In 1838, Stephen Bishop's owner bought up the Cave. Stephen, as (being a slave) he was invariably called, was by any standards a remarkable man: self-educated in Latin and Greek, he became famous as the `chief ruler' of his underground realm. He " PRINT "explored and named much of the layout in his spare time, doubling the known map in a year. The distinctive flavour of the Cave's names - half-homespun American, half-classical - started with Stephen: the River Styx, the Snowball Room, Little Bat Avenue, the Giant Dome. Stephen found strange blind fish, snakes, silent crickets, the remains of cave bears (savage, playful creatures, five feet long and four high, which became extinct at the end of the last Ice Age), centuries-old Indian gypsum workings and ever more cave. His 1842 map, drafted entirely from memory, was still in use forty years later. " PRINT "As a tourist attraction (and, since Stephen's owner was a philanthropist, briefly a sanatorium for tuberculosis, owing to a hopeless medical theory) the Cave became big business: for decades nearby caves were hotly seized and legal title endlessly challenged. The neighbouring chain, across Houchins Valley in the Flint Ridge, opened the Great Onyx Cave in 1912. By the 1920s, the Kentucky Cave " PRINT "Wars were in full swing. Rival owners diverted tourists with fake policemen, employed stooges to heckle each other's guided tours, burned down ticket huts, put out libellous and forged advertisements. Cave exploration became so dangerous and secretive that finally in 1941 the U.S. Government stepped in, made much of the area a National Park and effectively banned caving. The gold rush of tourists was, in any case, waning. " PRINT "Convinced that the Mammoth and Flint Ridge caves were all linked in a huge chain, explorers tried secret entrances for years, eventually winning official backing. Throughout the 1960s all connections from Flint Ridge - difficult and water-filled tunnels - ended frustratingly in chokes of boulders. A `reed-thin' physicist, Patricia Crowther, made the breakthrough in 1972 when she got through the Tight Spot and found a muddy passage: it was a hidden way into the Mammoth Cave. " PRINT "Under the terms of his owner's will, Stephen Bishop was freed in 1856, at which time the cave boasted 226 avenues, 47 domes, 23 pits and 8 waterfalls. He died a year later, before he could buy his wife and son. In the 1970s, Crowther's muddy passage was found on his map. " PRINT "The Mammoth Cave is huge, its full extent still a matter of speculation (estimates vary from 300 to 500 miles). Although this game has often been called "Colossal Cave", it is actually a simulation of the Bedquilt Cave region. Here is Will Crowther's story of how it came about: " PRINT ""I had been involved in a non-computer role-playing game called Dungeons and Dragons at the time, and also I had been actively exploring in caves - Mammoth Cave in Kentucky in particular. Suddenly, I got involved in a divorce, and that left me a bit pulled apart in various ways. In particular I was missing my kids. Also the caving had stopped, because that had become awkward, so I decided I would fool around and write a program that was a re-creation in fantasy of my caving, and also would be a game for the kids, and perhaps some aspects of the Dungeons and Dragons that I had been playing. " PRINT ""My idea was that it would be a computer game that would not be intimidating to non-computer people, and that was one of the reasons why I made it so that the player directs the game with natural language input, instead of more standardized commands. My kids thought it was a lot of fun." [Quoted in "Genesis II: Creation and Recreation with Computers", Dale Peterson (1983).] " PRINT "Crowther's original FORTRAN program had five or so treasures, but no formal scoring. The challenge was really to explore, though there was opposition from for instance the snake. Like the real Bedquilt region, Crowther's simulation has a map on about four levels of depth and is rich in geological detail. A good example is the orange column which descends to the Orange River Rock room (where the bird lives): the real column is of orange travertine, a beautiful mineral found in wet limestone. " PRINT "The game's language is loaded with references to caving, to `domes' and `crawls'. A `slab room', for instance, is a very old cave whose roof has begun to break away into sharp flakes which litter the floor in a crazy heap. The program's use of the word `room' for all manner of caves and places seems slightly sloppy in everyday " PRINT "English, but is widespread in American caving and goes back as far as Stephen Bishop: so the Adventure-games usage of the word `room' to mean `place' may even be bequeathed from him. " PRINT "The game took its decisive step toward puzzle-solving when Don Woods, a student at Stanford, debugged and expanded it. He tripled the number of treasures and added the non-geological zones: everything from the Troll Bridge onward, together with most of the antechambers on the Bedquilt level. All of the many imitations and extensions of the original Adventure are essentially based on Woods's 350-point edition. (Many bloated, corrupted or enhanced - it depends how you see it - versions of the game are in Internet circulation, and the most useful way to identify them is by the maximum attainable score. Many versions exist scoring up to around the 400s and 500s, and one up to 1000. Woods himself continues to release new versions of his game; most of the other extenders haven't his talent.) " PRINT "Although the game has veered away from pure simulation, a good deal of it remains realistic. Cavers do turn back when their carbide lamps flicker; there are indeed mysterious markings and initials on the cave walls, some left by the miners, some by Bishop, some by 1920s explorers. Of course there isn't an active volcano in central Kentucky, nor are there dragons and dwarves. But even these embellishments are, in a sense, derived " PRINT "from tradition: like most of the early role-playing games, `Adventure' owes much to J. R. R. Tolkien's `The Hobbit', and the passage through the mountains and Moria of `The Lord of the Rings' (arguably its most dramatic and atmospheric passage). Tolkien himself, the most successful myth-maker of the twentieth century, worked from the example of Icelandic, Finnish and Welsh sagas. " PRINT "By 1977 tapes of `Adventure' were being circulated widely, by the Digital user group DECUS, amongst others: taking over lunchtimes and weekends wherever it went... but that's another story. (Tracy Kidder's fascinating book `The Soul of a New Machine', a journalist's-eye-view of a mainframe computer development group, catches it well.) " PRINT_RET "This is a copy at third or fourth hand: from Will Crowther's original to Donald Woods's 350-point edition to Donald Ekman's PC port to David M. Baggett's excellent TADS version (1993), to this. " L0002: JE G6f,#03 [FALSE] L0003 PRINT "This port is fairly close to the original. The puzzles, items and places of Woods's original 350-point version are exactly those here. " PRINT "I have added a few helpful messages, such as "This is a dead end.", here and there: and restored some "initial position" messages from objects, such as the (rather lame) There is tasty food here. from source files which are certainly early but of doubtful provenance. They seem to sit well with the rest of the text. " PRINT "The scoring system is the original, except that you no longer lose 4 points for quitting (since you don't get the score if you quit an Inform game, this makes no difference) and, controversially, I award 5 points for currently carrying a treasure, as some early 1980s ports did. The rank names are tidied up a little. The only significant rule change is that one cannot use magic words until their destinations have been visited. " PRINT "The dwarves are simpler in their movements, but on the other hand I have added a very few messages to make them interact better with the rest of the game. The probabilities are as in the original game. " PRINT "In the original one could type the name of a room to visit it: for the sake of keeping the code small, I have omitted this feature, but with some regrets. " PRINT "The text itself is almost everywhere preserved intact, but I've corrected some spelling and grammatical mistakes (and altered a couple of utterly misleading and gnomic remarks). The instructions have been slightly altered (for obvious reasons) but are basically as written. " PRINT_RET "A good source for details is David Baggett's source code, which is circulated on the Internet." L0003: PRINT "Did you know that... " PRINT "The five dwarves have a 96% chance of following you, except into light, down pits or when admiring themselves: and the nasty little knives are 9.5% accurate. " PRINT "Dragons burn up dwarves (perhaps because dwarves eat only coal). " PRINT "The bear (who likes the volcano) is too heavy for the bridge... and you can go back to the scene after being resurrected. " PRINT "You can slip past the snake into the secret E/W canyon, 35% of the time at any rate. And walking about in the dark is not all that gruesome: it carries only a 25% risk of falling down a pit. " PRINT "The vase does not like being immersed. " PRINT "Shadowy figures can wave to each other. " PRINT "Watering the hinges of the door rusts them up again. " PRINT "When the cave closes, the grate is locked and the keys are thrown away, creatures run off and the crystal bridge vanishes... " PRINT "...and a completely useless hint is written on the giant oyster's shell in the end game. " PRINT_RET "The last lousy point can be won by... but no. That would be telling." Routine R0334, 0 locals Action routine for: "help" JE G0c,#02 [TRUE] L0001 CALL_VN R0062 (S308,#3f5d,#3f6f) JUMP L0002 L0001: CALL_VN R0062 (S309,#3f5d,#3f6f) L0002: RTRUE Routine R0335, 0 locals CALL_1N R0334 RTRUE Routine R0336, 0 locals Action routine for: "capture CREATURE" "capture CREATURE with HELD" PRINT "You can't catch " CALL_2N R0077 (G1e) PRINT_RET "." Routine R0337, 0 locals Action routine for: "free CREATURE" PRINT "You can't release " CALL_2N R0077 (G1e) PRINT_RET "." Routine R0338, 0 locals Action routine for: "douse water on NOUN" "water NOUN" JIN "small bottle",G08 [FALSE] L0001 CALL_VN R0059 (#61,#25) RTRUE L0001: PRINT_RET "Water? What water?" Routine R0339, 0 locals Action routine for: "douse oil on NOUN" "grease NOUN" JIN "small bottle",G08 [FALSE] L0001 CALL_VN R0059 (#61,#25) RTRUE L0001: PRINT_RET "Oil? What oil?" Routine R0340, 0 locals Action routine for: "on" JIN "brass lantern",G08 [TRUE] L0001 PRINT_RET "You have no lamp." L0001: CALL_VN R0059 (#2d,#24) RTRUE Routine R0341, 0 locals Action routine for: "off" JIN "brass lantern",G08 [TRUE] L0001 PRINT_RET "You have no lamp." L0001: CALL_VN R0059 (#2e,#24) RTRUE Routine R0342, 0 locals Action routine for: "xyzzy" PRINT_RET "Nothing happens." Routine R0343, 0 locals Action routine for: "plugh" PRINT_RET "Nothing happens." Routine R0344, 0 locals Action routine for: "plover" PRINT_RET "Nothing happens." Routine R0345, 0 locals Action routine for: "fee" CALL_2N R0349 (#00) RTRUE Routine R0346, 0 locals Action routine for: "fie" CALL_2N R0349 (#01) RTRUE Routine R0347, 0 locals Action routine for: "foe" CALL_2N R0349 (#02) RTRUE Routine R0348, 0 locals Action routine for: "foo" CALL_2N R0349 (#03) RTRUE Routine R0349, 1 local JE G7f,L00 [TRUE] L0001 STORE G7f,#00 PRINT_RET "Get it right, dummy!" L0001: PUSH G7f INC G7f JE (SP)+,#03 [FALSE] L0009 STORE G7f,#00 JIN "nest of golden eggs","Giant Room" [FALSE] L0002 PRINT_RET "Nothing happens." L0002: JIN "nest of golden eggs",G08 [TRUE] L0003 JIN "nest of golden eggs",G00 [FALSE] L0004 L0003: PRINT "The nest of golden eggs has vanished! " JUMP L0005 L0004: PRINT "Done!" L0005: JIN "nest of golden eggs",G08 [FALSE] L0006 SUB G06,#05 -> G06 L0006: JIN "nest of golden eggs","Inside Building" [FALSE] L0007 CALL_VS R0377 (#b0,#48) -> -(SP) SUB G06,(SP)+ -> G06 L0007: INSERT_OBJ "nest of golden eggs","Giant Room" JE G00,#ae [FALSE] L0008 PRINT_RET " A large nest full of golden eggs suddenly appears out of nowhere!" L0008: JUMP L0010 L0009: PRINT_RET "Ok." L0010: RTRUE Routine R0350, 0 locals Action routine for: "count NOUN" TEST_ATTR G1e,#1d [FALSE] L0001 PRINT_RET "There are a multitude." L0001: PRINT "I see one (1) " CALL_2N R0079 (G1e) PRINT_RET "." Routine R0351, 0 locals Action routine for: "use" PRINT_RET "You'll have to be a bit more explicit than that." Routine R0352, 0 locals Action routine for: "blast NOUN with HELD" JE G1f,#010e [TRUE] L0001 PRINT_RET "Blasting requires dynamite." L0001: PRINT_RET "Been eating those funny brownies again?" Routine R0353, 0 locals Action routine for: "abracadab" PRINT_RET "Good try, but that is an old worn-out magic word." Routine R0354, 0 locals Action routine for: "kick NOUN" CALL_VN R0059 (#5c,G1e) RTRUE Routine R0355, 0 locals Action routine for: "blast" JE G00,#010b,#0107 [TRUE] L0001 PRINT_RET "Frustrating, isn't it?" L0001: JE G00,#010b [FALSE] L0002 GET_PARENT "black rod with a rusty mark on the end" -> -(SP) JE (SP)+,#0107 [FALSE] L0002 ADD G06,#23 -> G06 STORE G0c,#02 PRINT_RET "There is a loud explosion, and a twenty-foot hole appears in the far wall, burying the dwarves in the rubble. You march through the hole and find yourself in the main office, where a cheering band of friendly elves carry the conquering adventurer off into the sunset." L0002: JE G00,#0107 [FALSE] L0003 GET_PARENT "black rod with a rusty mark on the end" -> -(SP) JE (SP)+,#010b [FALSE] L0003 ADD G06,#14 -> G06 STORE G0c,#01 PRINT_RET "There is a loud explosion, and a twenty-foot hole appears in the far wall, burying the snakes in the rubble. A river of molten lava pours in through the hole, destroying everything in its path, including you!" L0003: STORE G0c,#01 PRINT_RET "There is a loud explosion, and you are suddenly splashed across the walls of the room." Routine R0356, 1 local JE G0c,#03 [FALSE] L0001 STORE G0c,#01 RFALSE L0001: PRINT " " JZ G7a [TRUE] L0002 PRINT_RET "It looks as though you're dead. Well, seeing as how it's so close to closing time anyway, I think we'll just call it a day." L0002: JZ G7d [FALSE] L0003 PRINT "Oh dear, you seem to have gotten yourself killed. I might be able to help you out, but I've never really done this before. Do you want me to try to reincarnate you? " L0003: JE G7d,#01 [FALSE] L0004 PRINT "You clumsy oaf, you've done it again! I don't know how long I can keep this up. Do you want me to try reincarnating you again? " L0004: JE G7d,#02 [FALSE] L0005 PRINT "Now you've really done it! I'm out of orange smoke! You don't expect me to do a decent reincarnation without any orange smoke, do you? " L0005: PRINT "> " CALL_1S R0098 -> -(SP) JZ (SP)+ [FALSE] L0008 STORE Gef,G7d JE Gef,#00 [FALSE] L0006 PRINT_RET "Very well." L0006: JE Gef,#01 [FALSE] L0007 PRINT_RET "Probably a wise choice." L0007: JE Gef,#02 [FALSE] L0008 PRINT_RET "I thought not!" L0008: STORE Gef,G7d JE Gef,#00 [FALSE] L0009 PRINT "All right. But don't blame me if something goes wr...... --- POOF!! --- You are engulfed in a cloud of orange smoke. Coughing and gasping, you emerge from the smoke and find that you're.... " JUMP L0011 L0009: JE Gef,#01 [FALSE] L0010 PRINT "Okay, now where did I put my orange smoke?.... >POOF!< Everything disappears in a dense cloud of orange smoke. " JUMP L0011 L0010: JE Gef,#02 [FALSE] L0011 PRINT_RET "Okay, if you're so smart, do it yourself! I'm leaving!" L0011: INC G7d SUB G06,#0a -> G06 JE G00,#13 [TRUE] L0017 L0012: GET_CHILD G08 -> -(SP) [FALSE] L0013 L0013: JZ (SP)+ [TRUE] L0016 GET_CHILD G08 -> L00 [FALSE] L0014 L0014: INSERT_OBJ L00,G00 CALL_VS R0384 (L00,#15) -> -(SP) JZ (SP)+ [TRUE] L0015 SUB G06,#05 -> G06 L0015: JUMP L0012 L0016: JUMP L0020 L0017: GET_CHILD G08 -> -(SP) [FALSE] L0018 L0018: JZ (SP)+ [TRUE] L0020 GET_CHILD G08 -> -(SP) [FALSE] L0019 L0019: INSERT_OBJ (SP)+,G0a JUMP L0017 L0020: INSERT_OBJ "brass lantern","At End Of Road" CLEAR_ATTR "brass lantern",#0d CLEAR_ATTR "brass lantern",#09 REMOVE_OBJ "threatening little dwarf" STORE G0c,#00 CALL_2N R0096 (#1f) RTRUE Routine R0357, 0 locals Parsing routine for: "go NOUN [parse 0]" JIN G1e,"compass" [TRUE] RTRUE RFALSE Routine R0358, 1 local Parsing routine for: "consult NOUN about TEXT [parse 2]" "consult NOUN on TEXT [parse 2]" "answer TEXT [parse 2] to CREATURE" "tell CREATURE about TEXT [parse 2]" "ask CREATURE about TEXT [parse 2]" STORE G28,G2f L0001: CALL_1S R0038 -> L00 JE L00,#ffff [TRUE] L0002 JE L00,"to" [FALSE] L0001 JE G60,#02 [FALSE] L0001 L0002: DEC G2f SUB G2f,G28 -> G29 JZ G29 [FALSE] L0003 RET #ffff L0003: JE G60,#03,#02,#05 [FALSE] L0005 STORE L00,G2f STORE G2f,G28 CALL_1S R0037 -> G22 JE G22,"the" [FALSE] L0004 JG G29,#01 [FALSE] L0004 CALL_1S R0037 -> G22 L0004: STORE G2f,L00 RTRUE L0005: RFALSE Routine R0359, 1 local Parsing routine for: "l up TEXT [parse 1] in NOUN" "read about TEXT [parse 1] in NOUN" "read TEXT [parse 1] in NOUN" STORE G28,G2f L0001: CALL_1S R0038 -> L00 JE L00,"in",#ffff [FALSE] L0001 JE L00,#ffff [FALSE] L0002 RET #ffff L0002: DEC G2f SUB G2f,G28 -> G29 JZ G29 [FALSE] L0003 RET #ffff L0003: RFALSE Routine R0360, 0 locals RFALSE Routine R0361, 0 locals RFALSE Routine R0362, 0 locals RFALSE Routine R0363, 0 locals RFALSE Routine R0364, 0 locals RFALSE Routine R0365, 0 locals RFALSE Routine R0366, 0 locals RFALSE Routine R0367, 0 locals RFALSE Routine R0368, 1 local RFALSE Routine R0369, 1 local RFALSE Routine R0370, 1 local RFALSE Routine R0371, 1 local RFALSE Routine R0372, 1 local RFALSE Routine R0373, 2 locals RFALSE Routine R0374, 2 locals RFALSE Routine R0375, 1 local STORE L00,L00 RET #ffff Routine R0376, 4 locals CALL_VS R0381 (L00,L01) -> L03 JZ L03 [FALSE] L0001 CALL_VN R0386 (S310,L00,L01) RTRUE L0001: STOREW L03,#00,L02 RTRUE Routine R0377, 3 locals CALL_VS R0381 (L00,L01) -> L02 JZ L02 [FALSE] L0002 JL L01,#01 [TRUE] L0001 JL L01,#40 [FALSE] L0001 GET_PROP L00,L01 -> -(SP) RET_POPPED L0001: CALL_VN R0386 (S311,L00,L01) RTRUE L0002: LOADW L02,#00 -> -(SP) RET_POPPED Routine R0378, 11 locals JL L00,#01 [TRUE] L0001 SUB #020d,#ff -> -(SP) JG L00,(SP)+ [FALSE] L0007 L0001: CALL_2S R0387 (L00) -> -(SP) PULL Gef JE Gef,#02 [FALSE] L0003 JE L01,#45 [FALSE] L0002 STORE L08,L00 JUMP L0033 L0002: JUMP L0030 L0003: JE Gef,#03 [FALSE] L0006 JE L01,#46 [FALSE] L0004 STORE L08,L00 JUMP L0035 L0004: JE L01,#47 [FALSE] L0005 OUTPUT_STREAM REDIRECT_ENABLE,L02 PRINT_PADDR L00 OUTPUT_STREAM #fffd LOADW L02,#00 -> -(SP) RET_POPPED L0005: JUMP L0030 L0006: JUMP L0030 L0007: JL L01,#00 [TRUE] L0010 JL L01,#40 [FALSE] L0010 GET_PROP_ADDR L00,L01 -> L08 JZ L08 [FALSE] L0008 GET_PROP L00,L01 -> L08 JUMP L0009 L0008: LOADW L08,#00 -> L08 L0009: JUMP L0032 L0010: JL L01,#40 [TRUE] L0029 JL L01,#48 [FALSE] L0029 JIN L00,"Class" [FALSE] L0029 STORE Gef,L01 JE Gef,#40 [FALSE] L0015 STORE Gef,#00 GET_CHILD L00 -> -(SP) [FALSE] L0012 L0011: INC Gef GET_SIBLING (SP)+ -> -(SP) [TRUE] L0011 L0012: PULL Gee PUSH Gef JG (SP)+,#01 [FALSE] RFALSE GET_CHILD L00 -> L08 [FALSE] L0013 L0013: REMOVE_OBJ L08 CALL_VS R0383 (L08,#40) -> -(SP) JZ (SP)+ [TRUE] L0014 CALL_VN R0378 (L08,#40) L0014: RET L08 L0015: JE Gef,#41 [FALSE] L0019 CALL_VS R0384 (L02,L00) -> -(SP) JZ (SP)+ [FALSE] L0016 SUB #00,L00 -> -(SP) CALL_VN R0386 (S312,L02,(SP)+) RFALSE L0016: GET_CHILD L00 -> -(SP) [FALSE] L0017 L0017: CALL_VN R0385 (L02,(SP)+) CALL_VS R0383 (L02,#40) -> -(SP) JZ (SP)+ [TRUE] L0018 CALL_VN R0378 (L02,#40) L0018: RFALSE L0019: JE Gef,#42 [FALSE] L0023 CALL_VS R0384 (L02,L00) -> -(SP) JZ (SP)+ [FALSE] L0020 SUB #00,L00 -> -(SP) CALL_VN R0386 (S313,L02,(SP)+) RFALSE L0020: CALL_VS R0383 (L02,#42) -> -(SP) JZ (SP)+ [TRUE] L0021 CALL_VN R0378 (L02,#42) L0021: GET_CHILD L00 -> -(SP) [FALSE] L0022 L0022: CALL_VN R0385 (L02,(SP)+) INSERT_OBJ L02,L00 RFALSE L0023: JE Gef,#43 [FALSE] L0026 STORE Gef,#00 GET_CHILD L00 -> -(SP) [FALSE] L0025 L0024: INC Gef GET_SIBLING (SP)+ -> -(SP) [TRUE] L0024 L0025: PULL Gee PUSH Gef SUB (SP)+,#01 -> -(SP) RET_POPPED L0026: JE Gef,#44 [FALSE] L0029 CALL_VS R0384 (L02,L00) -> -(SP) JZ (SP)+ [FALSE] L0027 SUB #00,L00 -> -(SP) CALL_VN R0386 (S314,L02,(SP)+) RFALSE L0027: CALL_VS R0384 (L03,L00) -> -(SP) JZ (SP)+ [FALSE] L0028 SUB #00,L00 -> -(SP) CALL_VN R0386 (S315,L03,(SP)+) RFALSE L0028: CALL_VN R0385 (L02,L03) RFALSE L0029: CALL_VS R0381 (L00,L01) -> L08 JZ L08 [FALSE] L0031 L0030: CALL_VN R0386 (S316,L00,L01) RTRUE L0031: LOADW L08,#00 -> L08 L0032: JE L08,#ffff [TRUE] RFALSE CALL_2S R0387 (L08) -> -(SP) PULL Gef JE Gef,#02 [FALSE] L0034 L0033: STORE L09,Geb STORE L0a,Gea STORE Gea,Geb STORE Geb,L00 STORE Ge9,G19 CALL_VS2 L08 (L02,L03,L04,L05,L06,L07) -> L08 STORE Geb,L09 STORE Gea,L0a RET L08 L0034: JE Gef,#03 [FALSE] L0036 L0035: PRINT_PADDR L08 NEW_LINE RTRUE L0036: RET L08 Routine R0379, 3 locals CALL_VS R0381 (L00,L01) -> L02 JZ L02 [FALSE] L0001 CALL_VN R0386 (S317,L00,L01) RTRUE L0001: STORE Gef,L02 STORE Gee,#00 LOADW Gef,Gee -> Ged PUSH Ged INC Ged STOREW Gef,Gee,Ged RET_POPPED Routine R0380, 3 locals CALL_VS R0381 (L00,L01) -> L02 JZ L02 [FALSE] L0001 CALL_VN R0386 (S318,L00,L01) RTRUE L0001: STORE Gef,L02 STORE Gee,#00 LOADW Gef,Gee -> Ged DEC Ged STOREW Gef,Gee,Ged PUSH Ged RET_POPPED Routine R0381, 5 locals JL L01,#40 [FALSE] L0001 JG L01,#00 [FALSE] L0001 GET_PROP_ADDR L00,L01 -> -(SP) RET_POPPED L0001: GET_PROP_ADDR L00,#03 -> -(SP) JZ (SP)+ [TRUE] RFALSE AND L01,#8000 -> -(SP) JZ (SP)+ [TRUE] L0004 AND L01,#01ff -> -(SP) LOADW #2fba,(SP)+ -> L04 GET_PROP_ADDR L04,#03 -> -(SP) JZ (SP)+ [TRUE] RFALSE CALL_VS R0384 (L00,L04) -> -(SP) JZ (SP)+ [TRUE] RFALSE AND L01,#7e00 -> -(SP) DIV (SP)+,#0200 -> L01 GET_PROP L04,#03 -> L02 L0002: JG L01,#00 [FALSE] L0003 DEC L01 LOADB L02,#02 -> -(SP) ADD L02,(SP)+ -> -(SP) ADD (SP)+,#03 -> L02 JUMP L0002 L0003: ADD L02,#03 -> -(SP) RET_POPPED L0004: JIN L00,"Class" [FALSE] L0005 JL L01,#40 [TRUE] RFALSE JL L01,#48 [FALSE] RFALSE L0005: JE Geb,L00 [FALSE] L0006 OR L01,#8000 -> L03 L0006: GET_PROP L00,#03 -> L02 L0007: LOADW L02,#00 -> -(SP) JZ (SP)+ [TRUE] L0009 LOADW L02,#00 -> -(SP) JE (SP)+,L01,L03 [FALSE] L0008 ADD L02,#03 -> -(SP) RET_POPPED L0008: LOADB L02,#02 -> -(SP) ADD L02,(SP)+ -> -(SP) ADD (SP)+,#03 -> L02 JUMP L0007 L0009: RFALSE Routine R0382, 3 locals JL L01,#40 [FALSE] L0002 JG L01,#00 [FALSE] L0002 GET_PROP_ADDR L00,L01 -> Gef JZ Gef [TRUE] L0001 GET_PROP_LEN Gef -> Gef L0001: PUSH Gef RET_POPPED L0002: CALL_VS R0381 (L00,L01) -> L02 JZ L02 [TRUE] RFALSE SUB L02,#01 -> -(SP) LOADB (SP)+,#00 -> -(SP) RET_POPPED Routine R0383, 2 locals JL L00,#01 [TRUE] L0001 SUB #020d,#ff -> -(SP) JG L00,(SP)+ [FALSE] L0004 L0001: JE L01,#46,#47,#45 [FALSE] RFALSE CALL_2S R0387 (L00) -> -(SP) PULL Gef JE Gef,#02 [FALSE] L0002 JE L01,#45 [TRUE] RTRUE JUMP L0003 L0002: JE Gef,#03 [FALSE] L0003 JE L01,#46,#47 [TRUE] RTRUE L0003: RFALSE L0004: JL L01,#40 [FALSE] L0005 GET_PROP_ADDR L00,L01 -> -(SP) JZ (SP)+ [FALSE] RTRUE RFALSE L0005: CALL_VS R0381 (L00,L01) -> -(SP) JZ (SP)+ [FALSE] RTRUE JL L01,#48 [FALSE] L0006 JIN L00,"Class" [TRUE] RTRUE L0006: RFALSE Routine R0384, 5 locals JL L00,#01 [TRUE] L0001 SUB #020d,#ff -> -(SP) JG L00,(SP)+ [FALSE] L0002 L0001: JE L01,#03,#04 [FALSE] RFALSE SUB L01,#01 -> -(SP) CALL_2S R0387 (L00) -> -(SP) JE (SP)+,(SP)+ [TRUE] RTRUE RFALSE L0002: STORE Gef,L01 JE Gef,#01 [FALSE] L0003 JG L00,#04 [FALSE] RTRUE JIN L00,"Class" [TRUE] RTRUE RFALSE L0003: JE Gef,#02 [FALSE] L0004 JG L00,#04 [FALSE] RFALSE JIN L00,"Class" [TRUE] RFALSE RTRUE L0004: JE Gef,#03,#04 [FALSE] L0005 RFALSE L0005: JIN L01,"Class" [TRUE] L0006 CALL_VN R0386 (S319,L01,#ffff) RFALSE L0006: GET_PROP_ADDR L00,#02 -> L03 JZ L03 [TRUE] RFALSE GET_PROP_ADDR L00,#02 -> Gef JZ Gef [TRUE] L0007 GET_PROP_LEN Gef -> Gef L0007: STORE L04,Gef STORE L02,#00 L0008: DIV L04,#02 -> -(SP) JL L02,(SP)+ [FALSE] L0009 LOADW L03,L02 -> -(SP) JE (SP)+,L01 [TRUE] RTRUE INC L02 JUMP L0008 L0009: RFALSE Routine R0385, 9 locals STORE L04,#00 L0001: JL L04,#30 [FALSE] L0004 TEST_ATTR L01,L04 [FALSE] L0002 SET_ATTR L00,L04 JUMP L0003 L0002: CLEAR_ATTR L00,L04 L0003: INC L04 JUMP L0001 L0004: STORE L04,#01 L0005: JL L04,#40 [FALSE] L0010 GET_PROP_ADDR L00,L04 -> L02 GET_PROP_ADDR L01,L04 -> L03 GET_PROP_ADDR L00,L04 -> Gef JZ Gef [TRUE] L0006 GET_PROP_LEN Gef -> Gef L0006: STORE L07,Gef JZ L02 [TRUE] L0009 JZ L03 [TRUE] L0009 GET_PROP_ADDR L01,L04 -> Gef JZ Gef [TRUE] L0007 GET_PROP_LEN Gef -> Gef L0007: PUSH Gef JE L07,(SP)+ [FALSE] L0009 STORE L05,#00 L0008: JL L05,L07 [FALSE] L0009 LOADB L03,L05 -> -(SP) STOREB L02,L05,(SP)+ INC L05 JUMP L0008 L0009: INC L04 JUMP L0005 L0010: GET_PROP_ADDR L00,#03 -> -(SP) JZ (SP)+ [TRUE] L0011 GET_PROP_ADDR L01,#03 -> -(SP) JZ (SP)+ [FALSE] L0012 L0011: RTRUE L0012: GET_PROP L01,#03 -> L04 JUMP L0014 L0013: ADD L04,L07 -> -(SP) ADD (SP)+,#03 -> L04 L0014: LOADW L04,#00 -> -(SP) JZ (SP)+ [TRUE] L0020 LOADW L04,#00 -> L08 LOADB L04,#02 -> L07 GET_PROP L00,#03 -> L05 JUMP L0016 L0015: LOADB L05,#02 -> -(SP) ADD L05,(SP)+ -> -(SP) ADD (SP)+,#03 -> L05 L0016: LOADW L05,#00 -> -(SP) JZ (SP)+ [TRUE] L0019 LOADW L05,#00 -> -(SP) AND (SP)+,#7fff -> -(SP) AND L08,#7fff -> -(SP) JE (SP)+,(SP)+ [FALSE] L0018 LOADB L05,#02 -> -(SP) JE L07,(SP)+ [FALSE] L0018 STORE L06,#03 L0017: ADD L07,#03 -> -(SP) JL L06,(SP)+ [FALSE] L0018 LOADB L04,L06 -> -(SP) STOREB L05,L06,(SP)+ INC L06 JUMP L0017 L0018: JUMP L0015 L0019: JUMP L0013 L0020: RTRUE Routine R0386, 5 locals PRINT " ** Run-time error: " JIN L01,"Class" [FALSE] L0001 PRINT "Class " L0001: PRINT_OBJ L01 PRINT " (object number " PRINT_NUM L01 PRINT ") " JL L02,#00 [FALSE] L0002 PRINT "is not of class " SUB #00,L02 -> -(SP) CALL_2N R0079 ((SP)+) JUMP L0004 L0002: PRINT " has no property " CALL_2N R0001 (L02) STORE L04,#2fd2 LOADW L04,#00 -> L03 JL L02,#00 [TRUE] L0003 JL L02,L03 [TRUE] L0004 L0003: PRINT " (and nor has any other object)" L0004: PRINT " to " PRINT_PADDR L00 PRINT " ** " RTRUE Routine R0387, 1 local JZ L00 [TRUE] RFALSE JL L00,#01 [TRUE] L0001 SUB #020d,#ff -> -(SP) JG L00,(SP)+ [FALSE] RTRUE L0001: CALL_VS R0388 (L00,S001 OR "lubricate") -> -(SP) JL (SP)+,#00 [TRUE] L0002 RET #03 L0002: CALL_VS R0388 (L00,#1667) -> -(SP) JL (SP)+,#00 [TRUE] L0003 RET #02 L0003: RFALSE Routine R0388, 4 locals JE L00,L01 [FALSE] L0001 RFALSE L0001: JL L00,#00 [FALSE] L0002 JL L01,#00 [TRUE] L0002 RTRUE L0002: JL L00,#00 [TRUE] L0003 JL L01,#00 [FALSE] L0003 RET #ffff L0003: AND L00,#7fff -> L02 AND L01,#7fff -> L03 JG L02,L03 [FALSE] L0004 RTRUE L0004: RET #ffff [End of code] [Start of text] S001: "ADVENTURE" S002: " The Interactive Original By Will Crowther (1973) and Don Woods (1977) Reconstructed in three steps by: Donald Ekman, David M. Baggett (1993) and Graham Nelson (1994) [In memoriam Stephen Bishop (1820?-1857): GN] " S003: "960912" S004: "6/2" S005: "a" S006: "You can't go that way." S007: "the" S008: "the" S009: "the" S010: "the" S011: "the" S012: "the" S013: "the" S014: "the" S015: "the" S016: "the" S017: "the" S018: "the" S019: "Darkness" S020: "It is pitch dark, and you can't see a thing." S021: "As good-looking as ever." S022: "Nameless item" S023: "your former self" S024: "You are standing at the end of a road before a small brick building. Around you is a forest. A small stream flows out of the building and down a gully." S025: "It's a small brick building. It seems to be a well house." S026: "The road is dirt, not yellow brick." S027: "The trees of the forest are large hardwood oak and maple, with an occasional grove of pine or spruce. There is quite a bit of undergrowth, largely birch and ash saplings plus nondescript bushes of various sorts. This time of year visibility is quite restricted by all the leaves, but travel is quite easy if you detour around the spruce and berry bushes." S028: "You have walked up a hill, still in the forest. The road slopes back down the other side of the hill. There is a building in the distance." S029: "It's just a typical hill." S030: "the" S031: "Why not explore it yourself?" S032: "You are inside a building, a well house for a large spring." S033: "The stream flows out through a pair of 1 foot diameter sewer pipes. The only exit is to the west." S034: "The pipes are too small." S035: "The stream flows out through a pair of 1 foot diameter sewer pipes." S036: "Too small. The only exit is to the west." S037: "It's just a normal-looking set of keys." S038: "There are some keys on the ground here." S039: "Sure looks yummy!" S040: "some" S041: "There is tasty food here." S042: "There is a shiny brass lamp nearby." S043: "Your lamp is here, gleaming brightly." S044: "There is an empty bottle here." S045: "some" S046: "It looks like ordinary water to me." S047: "some" S048: "It looks like ordinary oil to me." S049: "You are in open forest, with a deep valley to one side." S050: "You are in open forest near both a valley and a road." S051: "You are in a valley in the forest beside a stream tumbling along a rocky bed." S052: "At your feet all the water of the stream splashes into a 2-inch slit in the rock. Downstream the streambed is bare rock." S053: "You don't fit through a two-inch slit!" S054: "You don't fit through a two-inch slit!" S055: "It's just a 2-inch slit in the rock, through which the stream is flowing." S056: "You are in a 20-foot depression floored with bare dirt. Set into the dirt is a strong steel grate mounted in concrete. A dry streambed leads into the depression." S057: "You're standing in it." S058: "It just looks like an ordinary grate mounted in concrete." S059: "You are in a small chamber beneath a 3x3 steel grate to the surface. A low crawl over cobbles leads inward to the west." S060: "They're just ordinary cobbles." S061: "You are crawling over cobbles in a low passage. There is a dim light at the east end of the passage." S062: "It's a small wicker cage." S063: "There is a small wicker cage discarded nearby." S064: "You are in a debris room filled with stuff washed in from the surface. A low wide passage with cobbles becomes plugged with mud and debris here, but an awkward canyon leads upward and west. A note on the wall says, "Magic word XYZZY."" S065: "Yuck." S066: "The note says "Magic word XYZZY"." S067: "It's a three foot black rod with a rusty star on an end." S068: "A three foot black rod with a rusty star on one end lies nearby." S069: "You are in an awkward sloping east/west canyon." S070: "You are in a splendid chamber thirty feet high. The walls are frozen rivers of orange stone. An awkward canyon and a good passage exit from east and west sides of the chamber." S071: "A cheerful little bird is sitting here singing." S072: "At your feet is a small pit breathing traces of white mist. A west passage ends here except for a small crack leading on. Rough stone steps lead down the pit." S073: "The crack is far too small for you to follow." S074: "The pit is breathing traces of white mist." S075: "The crack is very small -- far too small for you to follow." S076: "Mist is a white vapor, usually water, seen from time to time in caverns. It can be found anywhere but is frequently a sign of a deep pit leading down to water." S077: "You are at one end of a vast hall stretching forward out of sight to the west. There are openings to either side. Nearby, a wide stone staircase leads downward. The hall is filled with wisps of white mist swaying to and fro almost as if alive. A cold wind blows up the staircase. There is a passage at the top of a dome behind you. Rough stone steps lead up the dome." S078: "The staircase leads down." S079: "The rough stone steps lead up the dome." S080: "This is a low room with a crude note on the wall: "You won't get it up the steps"." S081: "The note says, "You won't get it up the steps"." S082: "It's a large sparkling nugget of gold!" S083: "There is a large sparkling nugget of gold here!" S084: "The fissure is too terrifying!" S085: "You are on the east bank of a fissure slicing clear across the hall. The mist is quite thick here, and the fissure is too wide to jump." S086: "The fissure is too wide." S087: "You are on the west side of the fissure in the hall of mists." S088: "The fissure is too wide." S089: "some" S090: "They look to be of the highest quality!" S091: "There are diamonds here!" S092: "A crystal bridge now spans the fissure." S093: "It spans the fissure, thereby providing you a way across." S094: "The fissure looks far too wide to jump." S095: "You are at the west end of the hall of mists. A low wide crawl continues west and another goes north. To the south is a little passage 6 feet off the floor." S096: "You are at the east end of a very long hall apparently without side chambers. To the east a low wide crawl slants up. To the north a round two foot hole slants down." S097: "You are at the west end of a very long featureless hall. The hall joins up with a narrow north/south passage." S098: "You are at a crossover of a high N/S passage and a low E/W one." S099: "You know as much as I do at this point." S100: "Dead End" S101: "You have reached a dead end." S102: "You'll have to go back the way you came." S103: "You are in the hall of the mountain king, with passages off in all directions." S104: "Well, perhaps not quite all directions." S105: "I wouldn't mess with it if I were you." S106: "A huge green fierce snake bars the way!" S107: "You are in a low N/S passage at a hole in the floor. The hole goes down to an E/W passage." S108: "They're probably worth a fortune!" S109: "There are bars of silver here!" S110: "some" S111: "You are in the south side chamber." S112: "It's all quite exquisite!" S113: "There is precious jewelry here!" S114: "some" S115: "You are in the west side chamber of the hall of the mountain king. A passage continues west and up here." S116: "They're a numismatist's dream!" S117: "There are many coins here!" S118: "many" S119: "You are in a large room, with a passage to the south, a passage to the west, and a wall of broken rock to the east. There is a large "Y2" on a rock in the room's center." S120: "There is a large "Y2" painted on the rock." S121: "You are in a jumble of rock, with cracks everywhere." S122: "You're at a low window overlooking a huge pit, which extends up out of sight. A floor is indistinctly visible over 50 feet below. Traces of white mist cover the floor of the pit, becoming thicker to the right. Marks in the dust around the window would seem to indicate that someone has been here recently. Directly across the pit from you and 25 feet away there is a similar window looking into a lighted room. A shadowy figure can be seen there peering back at you." S123: "The only passage is back east to Y2." S124: "It looks like a regular window." S125: "It's so deep you can barely make out the floor below, and the top isn't visible at all." S126: "Evidently you're not alone here." S127: "The shadowy figure seems to be trying to attract your attention." S128: "You are in a dirty broken passage. To the east is a crawl. To the west is a large passage. Above you is a hole to another passage." S129: "You are on the brink of a small clean climbable pit. A crawl leads west." S130: "It looks like you might be able to climb down into it." S131: "You are in the bottom of a small pit with a little stream, which enters and exits through tiny slits." S132: "You don't fit through the tiny slits!" S133: "The slits form a complex pattern in the rock." S134: "You are in a large room full of dusty rocks. There is a big hole in the floor. There are cracks everywhere, and a passage leading east." S135: "They're just rocks. (Dusty ones, that is.)" S136: "Maze" S137: "You are in a maze of twisty little passages, all alike." S138: "Easier said than done." S139: "You are on the brink of a thirty foot pit with a massive orange column down one wall. You could climb down here but you could not get back up. The maze continues at this level." S140: "It looks like you could climb down it." S141: "You'll have to climb down to find out anything more..." S142: "You are at a complex junction. A low hands and knees passage from the north joins a higher crawl from the east to make a walking passage going west. There is also a large room above. The air is damp here." S143: "You are in bedquilt, a long east/west passage with holes everywhere. To explore at random select north, south, up, or down." S144: "You are in a room whose walls resemble swiss cheese. Obvious passages go west, east, ne, and nw. Part of the room is occupied by a large bedrock block." S145: "It's just a huge block." S146: "You are at the west end of the twopit room. There is a large hole in the wall above the pit at this end of the room." S147: "It is too far up for you to reach." S148: "The hole is in the wall above the pit at this end of the room." S149: "You are at the bottom of the western pit in the twopit room. There is a large hole in the wall about 25 feet above you." S150: "You are at the east end of the twopit room. The floor here is littered with thin rock slabs, which make it easy to descend the pits. There is a path here bypassing the pits to connect passages from east and west. There are holes all over, but the only big one is on the wall directly over the west pit where you can't get to it." S151: "They almost form natural stairs down into the pit." S152: "You are at the bottom of the eastern pit in the twopit room. There is a small pool of oil in one corner of the pit." S153: "It looks like ordinary oil." S154: "The hole is in the wall above you." S155: "You are in a large low circular chamber whose floor is an immense slab fallen from the ceiling (slab room). East and west there once were large passages, but they are now filled with boulders. Low small passages go north and south, and the south one quickly bends west around the boulders." S156: "It is now the floor here." S157: "They're just ordinary boulders." S158: "You are in a secret N/S canyon above a large room." S159: "You are in a secret N/S canyon above a sizable passage." S160: "You are in a secret canyon at a junction of three canyons, bearing north, south, and se. The north one is as tall as the other two combined." S161: "You are in a large low room. Crawls lead north, se, and sw." S162: "This is a dead end crawl." S163: "You are in a secret canyon which here runs E/W. It crosses over a very tight canyon 15 feet below. If you go down you may not be able to get back up." S164: "You are at a wide place in a very tight N/S canyon." S165: "The canyon here becomes too tight to go further south." S166: "You are in a tall E/W canyon. A low tight crawl goes 3 feet north and seems to open up." S167: "A large stalactite extends from the roof and almost reaches the floor below. You could climb down it, and jump from it to the floor, but having done so you would be unable to reach it to climb back up." S168: "You could probably climb down it, but you can forget coming back up." S169: "You are in a secret canyon which exits to the north and east." S170: "I wouldn't mess with it if I were you." S171: "A huge green fierce dragon bars the way!" S172: "The body of a huge green dead dragon is lying off to one side." S173: "The canyon runs into a mass of boulders -- dead end." S174: "This is the pirate's dead end." S175: "It's the pirate's treasure chest, filled with riches of all kinds!" S176: "The pirate's treasure chest is here!" S177: "You are in a long, narrow corridor stretching out of sight to the west. At the eastern end is a hole through which you can see a profusion of leaves." S178: "The leaves appear to be attached to the beanstalk you climbed to get here." S179: "some" S180: "You are at the top of a steep incline above a large room. You could climb down here, but you would not be able to climb up. There is a passage leading back to the north." S181: "You are in the giant room. The ceiling here is too high up for your lamp to show it. Cavernous passages lead east, north, and south. On the west wall is scrawled the inscription, "Fee fie foe foo" [sic]." S182: "It says, "Fee fie foe foo [sic]."" S183: "The nest is filled with beautiful golden eggs!" S184: "There is a large nest here, full of golden eggs!" S185: "The passage here is blocked by a recent cave-in." S186: "You are at one end of an immense north/south passage." S187: "It's just a big iron door." S188: "The way north is barred by a massive, rusty, iron door." S189: "The way north leads through a massive, rusty, iron door." S190: "You are in a magnificent cavern with a rushing stream, which cascades over a sparkling waterfall into a roaring whirlpool which disappears through a hole in the floor. Passages exit to the south and west." S191: "Wouldn't want to go down in in a barrel!" S192: "The trident is covered with fabulous jewels!" S193: "There is a jewel-encrusted trident here!" S194: "You are in the soft room. The walls are covered with heavy curtains, the floor with a thick pile carpet. Moss covers the ceiling." S195: "The carpet is quite plush." S196: "They seem to absorb sound very well." S197: "It just looks like your typical, everyday moss." S198: "It's just a small velvet pillow." S199: "A small velvet pillow lies on the floor." S200: "This is the oriental room. Ancient oriental cave drawings cover the walls. A gently sloping passage leads upward to the north, another passage leads se, and a hands and knees crawl leads west." S201: "They seem to depict people and animals." S202: "It's a delicate, precious, ming vase!" S203: "The floor is littered with worthless shards of pottery." S204: "They look to be the remains of what was once a beautiful vase. I guess some oaf must have dropped it." S205: "You are following a wide path around the outer edge of a large cavern. Far below, through a heavy white mist, strange splashing noises can be heard. The mist rises up through a fissure in the ceiling. The path exits to the south and west." S206: "You can't really get close enough to examine it." S207: "You are in an alcove. A small northwest path seems to widen after a short distance. An extremely tight tunnel leads east. It looks like a very tight squeeze. An eerie light can be seen at the other end." S208: "You're in a small chamber lit by an eerie green light. An extremely narrow tunnel exits to the west. A dark corridor leads northeast." S209: "an" S210: "Plover's eggs, by the way, are quite large." S211: "There is an emerald here the size of a plover's egg!" S212: "You're in the dark-room. A corridor leading south is the only exit." S213: "A massive stone tablet imbedded in the wall reads: "Congratulations on bringing light into the dark-room!"" S214: "There is a platinum pyramid here, 8 inches on a side!" S215: "The platinum pyramid is 8 inches on a side!" S216: "You are in an arched hall. A coral passage once continued up and east from here, but is now blocked by debris. The air smells of sea water." S217: "You're in a large room carved out of sedimentary rock. The floor and walls are littered with bits of shells imbedded in the stone. A shallow passage proceeds downward, and a somewhat steeper one leads up. A low hands and knees passage enters from the south." S218: "It's incredibly large!" S219: "Off to one side lies a glistening pearl!" S220: "You are in a long sloping corridor with ragged sharp walls." S221: "You are in a cul-de-sac about eight feet across." S222: "You are in an anteroom leading to a large passage to the east. Small passages go west and up. The remnants of recent digging are evident." S223: "A sign in midair here says "Cave under construction beyond this point. Proceed at own risk. [Witt Construction Company]"" S224: "There are a few recent issues of "Spelunker Today" magazine here." S225: "I'm afraid the magazines are written in Dwarvish." S226: "a few" S227: "You are at Witt's End. Passages lead off in *all* directions." S228: "You have crawled around in some little holes and found your way blocked by a recent cave-in. You are now back in the main passage." S229: "You are in a north/south canyon about 25 feet across. The floor is covered by white mist seeping in from the north. The walls extend upward for well over 100 feet. Suspended from some unseen point far above you, an enormous two-sided mirror is hanging parallel to and midway between the canyon walls. A small window can be seen in either wall, some fifty feet up." S230: "The mirror is obviously provided for the use of the dwarves who, as you know, are extremely vain." S231: "The mirror is obviously provided for the use of the dwarves, who as you know, are extremely vain." S232: "You're at a low window overlooking a huge pit, which extends up out of sight. A floor is indistinctly visible over 50 feet below. Traces of white mist cover the floor of the pit, becoming thicker to the left. Marks in the dust around the window would seem to indicate that someone has been here recently. Directly across the pit from you and 25 feet away there is a similar window looking into a lighted room. A shadowy figure can be seen there peering back at you." S233: "The only passage is back west to the junction." S234: "You are at the edge of a large underground reservoir. An opaque cloud of white mist fills the room and rises rapidly upward. The lake is fed by a stream, which tumbles out of a hole in the wall about 10 feet overhead and splashes noisily into the water somewhere within the mist. The only passage goes back toward the south." S235: "You are in a long winding corridor sloping out of sight in both directions." S236: "The corridor slopes steeply up and down." S237: "You are on one side of a large, deep chasm. A heavy white mist rising up from below obscures all view of the far side. A southwest path leads away from the chasm into a winding corridor." S238: "The path winds southwest." S239: "It just looks like an ordinary, but unstable, bridge." S240: "Trolls are close relatives with rocks and have skin as tough as that of a rhinoceros." S241: "A burly troll stands by the bridge and insists you throw him a treasure before you may cross." S242: "The wreckage of the troll bridge (and a dead bear) can be seen at the bottom of the chasm." S243: "You are on the far side of the chasm. A northeast path leads away from the chasm on this side." S244: "You're in a long east/west corridor. A faint rumbling noise can be heard in the distance." S245: "The path forks here. The left fork leads northeast. A dull rumbling seems to get louder in that direction. The right fork leads southeast down a gentle slope. The main corridor enters from the west." S246: "The walls are quite warm here. From the north can be heard a steady roar, so loud that the entire cave seems to be trembling. Another passage leads south, and a low crawl goes east." S247: "You are on the edge of a breath-taking view. Far below you is an active volcano, from which great gouts of molten lava come surging out, cascading back down into the depths. The glowing rock fills the farthest reaches of the cavern with a blood-red glare, giving everything an eerie, macabre appearance. The air is filled with flickering sparks of ash and a heavy smell of brimstone. The walls are hot to the touch, and the thundering of the volcano drowns out all other sounds. Embedded in the jagged roof far overhead are myriad twisted formations composed of pure white alabaster, which scatter the murky light into sinister apparitions upon the walls. To one side is a deep gorge, filled with a bizarre chaos of tortured rock which seems to have been crafted by the devil himself. An immense river of fire crashes out from the depths of the volcano, burns its way through the gorge, and plummets into a bottomless pit far off to your left. To the right, an immense geyser of blistering steam erupts continuously from a barren island in the center of a sulfurous lake, which bubbles ominously. The far right wall is aflame with an incandescence of its own, which lends an additional infernal splendor to the already hellish scene. A dark, forboding passage exits to the south." S248: "Don't be ridiculous!" S249: "Great gouts of molten lava come surging out of the volcano and go cascading back down into the depths. The glowing rock fills the farthest reaches of the cavern with a blood-red glare, giving everything an eerie, macabre appearance." S250: "The sparks too far away for you to get a good look at them." S251: "Embedded in the jagged roof far overhead are myriad twisted formations composed of pure white alabaster, which scatter the murky light into sinister apparitions upon the walls." S252: "The gorge is filled with a bizarre chaos of tortured rock which seems to have been crafted by the devil himself." S253: "The river of fire crashes out from the depths of the volcano, burns its way through the gorge, and plummets into a bottomless pit far off to your left." S254: "The geyser of blistering steam erupts continuously from a barren island in the center of a sulfurous lake, which bubbles ominously." S255: "You are in a small chamber filled with large boulders. The walls are very warm, causing the air in the room to be almost stifling from the heat. The only exit is a crawl heading west, through which is coming a low rumbling." S256: "They're just ordinary boulders. They're warm." S257: "a selection of" S258: "You are walking along a gently sloping north/south passage lined with oddly shaped limestone formations." S259: "Every now and then a particularly strange shape catches your eye." S260: "You are standing at the entrance to a large, barren room. A sign posted above the entrance reads: "Caution! Bear in room!"" S261: "The sign reads, "Caution! Bear in room!"" S262: "You are inside a barren room. The center of the room is completely empty except for some dust. Marks in the dust lead away toward the far end of the room. The only exit is the way you came in." S263: "It just looks like ordinary dust." S264: "The chain has thick links of solid gold!" S265: "Maze" S266: "You are in a maze of twisty little passages, all different." S267: "You are in a little maze of twisting passages, all different." S268: "You are in a maze of twisting little passages, all different." S269: "You are in a little maze of twisty passages, all different." S270: "You are in a twisting maze of little passages, all different." S271: "You are in a twisting little maze of passages, all different." S272: "You are in a twisty little maze of passages, all different." S273: "You are in a twisty maze of little passages, all different." S274: "You are in a little twisty maze of passages, all different." S275: "You are in a maze of little twisting passages, all different." S276: "You are in a maze of little twisty passages, all different." S277: "Dead End, near Vending Machine" S278: "You have reached a dead end. There is a massive vending machine here." S279: "The message reads, "This is not the maze where the pirate leaves his treasure chest."" S280: "Hmmm... There is a message here scrawled in the dust in a flowery script." S281: "The instructions on the vending machine read, "Insert coins to receive fresh batteries."" S282: "They look like ordinary batteries. (A sepulchral voice says, "Still going!")" S283: "There are fresh batteries here." S284: "They look like ordinary batteries." S285: "Some worn-out batteries have been discarded nearby." S286: "It's probably not a good idea to get too close. Suffice it to say the little guy's pretty aggressive." S287: "A threatening little dwarf hides in the shadows." S288: "There is a little axe here." S289: "It's just a little axe." S290: "You are at the northeast end of an immense room, even larger than the giant room. It appears to be a repository for the "Adventure" program. Massive torches far overhead bathe the room with smoky yellow light. Scattered about you can be seen a pile of bottles (all of them empty), a nursery of young beanstalks murmuring quietly, a bed of oysters, a bundle of black rods with rusty stars on their ends, and a collection of brass lanterns. Off to one side a great many dwarves are sleeping on the floor, snoring loudly. A sign nearby reads: "Do not disturb the dwarves!"" S291: "It looks like an ordinary, albeit enormous, mirror." S292: "An immense mirror is hanging against one wall, and stretches to the other end of the room, where various other sundry objects can be glimpsed dimly in the distance." S293: "You've seen everything in here already, albeit in somewhat different contexts." S294: "I wouldn't bother the dwarves if I were you." S295: "hundreds of angry" S296: "You are at the southwest end of the repository. To one side is a pit full of fierce green snakes. On the other side is a row of small wicker cages, each of which contains a little sulking bird. In one corner is a bundle of black rods with rusty marks on their ends. A large number of velvet pillows are scattered about on the floor. A vast mirror stretches off to the northeast. At your feet is a large steel grate, next to which is a sign which reads, "TREASURE VAULT. Keys in main office."" S297: "It just looks like an ordinary steel grate." S298: "The grate is open." S299: "The grate is closed." S300: "You've seen everything in here already, albeit in somewhat different contexts." S301: "It's a three foot black rod with a rusty mark on an end." S302: "A three foot black rod with a rusty mark on one end lies nearby." S303: "About Adventure" S304: "Instructions" S305: "History" S306: "Authenticity" S307: "Did you know..." S308: "There is information provided on the following: Instructions for playing A historical preface How authentic is this edition? " S309: "There is information provided on the following: Instructions for playing A historical preface How authentic is this edition? Did you know... " S310: "write to" S311: "read" S312: "recreate" S313: "destroy" S314: "copy" S315: "copy" S316: "send message" S317: "increment" S318: "decrement" S319: "apply 'ofclass' for" S320: ""name"" S321: ""create"" S322: ""recreate"" S323: ""destroy"" S324: ""remaining"" S325: ""copy"" S326: ""call"" S327: ""print"" S328: ""print_to_array"" S329: ""before"" S330: ""after"" S331: ""life"" S332: ""n_to/door_to"" S333: ""s_to/when_closed/when_off"" S334: ""e_to/with_key"" S335: ""w_to/door_dir"" S336: ""ne_to/react_before"" S337: ""se_to/add_to_scope"" S338: ""nw_to/react_after"" S339: ""sw_to/list_together"" S340: ""u_to/invent"" S341: ""d_to/plural"" S342: ""in_to/grammar"" S343: ""out_to/orders"" S344: ""initial/when_open/when_on"" S345: ""description"" S346: ""describe"" S347: ""article"" S348: ""cant_go"" S349: ""found_in"" S350: ""time_left"" S351: ""number"" S352: ""time_out/daemon"" S353: ""each_turn"" S354: ""capacity"" S355: ""short_name"" S356: ""parse_name"" S357: ""depositpoints"" S358: ""power_remaining"" S359: ""replace_batteries"" S360: ""height"" S361: ""following_you"" S362: ""angry"" S363: ""has_stolen_something"" S364: ""has_been_spotted"" S365: ""wake_up"" [End of text] [End of file]